第四章:Java的输入输出(基础IO流)

目录

一、定义

二、输入方式

(一)常用输入:Scanner 类

(二)窗口输入:JOptionPane 类

(三)安全输入:IO.console 类

三、输出方式

(一)不换行输出:System.out.print();

(二)换行输出:System.out.println();

(二)格式化输出:System.out.printf();


一、定义

(一)输入(Input)输出(Output)一IO流

  • 输入流:以电脑为参考系,从外部向程序或电脑中输入一个数据,称之为输入流
  • 输出流:以电脑程序向外输出一个数据,称之为输出流。

(二)系统输入输出 —— 标准输入输出

  • 标准输出 —— 显示器 System.out 这是Java中的标准输出对象。
  • 标准输入 —— 键盘System.in这是Java默认的。(用于文件的IO)

默认输出是输出到控制台。

二、输入方式

按Enter将缓存区的数据输入,也可以通过Enter跳过输入

(一)常用输入:Scanner 类

导入包:import   java.util.Scanner;                //  在创建方式,系统自行导入

创建对象:Scanner 变量名 = new Scanner(System.in); 

调用对象: 基本数据类型 标识符 = 变量名. next基本数据类型 

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {

        Scanner inPut = new Scanner(System.in); //创建输入对象

        //注意:常用的输入数字数据方式(还有nextShort、nextByte、nextLong、nextFloat)
        int a = inPut.nextInt();            //nextInt()用于int类型
        double b = inPut.nextDouble();      //nextDouble() 用于double类型

        //注意:只有输入整型数据才可以限制输入个数:nextInt(个数)[
        int k = inPut.nextInt(10);  //超过限制输入个数,会报错

        //注意:next() 和 nextLine() 用于字符串。next 和 nextLine的区别
        String i = inPut.next();        //next不能用于输入空格,会以空格作为结束符(按Enter输入结束,不会输出空格后的字符)
        String j = inPut.nextLine();    //nextLine可以输入空格字符(按Enter输入结束,可以输出空格后的字符)

        //注意:Scanner没有nextChar的方法 ==> 字符是在字符串的基础上添加chartAt(下标)
        char x = inPut.next().charAt(0);
        char y = inPut.nextLine().charAt(0);
    }
}

快速入门

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //生成scanner对象
        System.out.print("请输入你的姓名:");
        String name = sc.nextLine();//输入字符串
        System.out.print("请输入你的年龄:");
        int age = sc.nextInt();//输入整数
        System.out.println("姓名:" + name +"\n" +"年龄:" + age);
    }
}


(二)窗口输入:JOptionPane 类

导入包:import  javax.swing.JOptionPane;                //  在调用使用方式,系统自行导入

使用对象:基本数据类型  变量名 =  JOptionPane.showInputDialog ("字符串")        

import javax.swing.JOptionPane;

public class Demo {
    public static void main(String[] args) {
        String name = JOptionPane.showInputDialog("请输入姓名:");
        System.out.println("姓名:" + name);
        //System.out.printf("姓名:%s",name);
    }
}

运行过程:

运行结果:


(三)安全输入:IO.console 类

导入包:import  java.io.Console;               //  在调用使用方式,系统自行导入

创建对象:Console 变量名 = System.console();

调用对象:数据类型 变量名 = 变量名.readLine()   /  变量名.readPassword()

安全输入只能在cmd控制台运行,不能在IDEA、eclipse等工具运行

在cmd终端里,进入文件所在目录,运行指令:java -Dfile.encoding=utf-8 源文件名.java

之后就可以在cmd终端里像IDEA控制端一样输入

import java.io.Console;

public class Demo {
    public static void main(String[] args) {
        Console con = System.console(); //创建安全输入对象

        String name = con.readLine("请输入账号:");
        String passWorld = con.readLine("请输入密码:");

        System.out.println("账号:" + name + "\t" + "密码:" + passWorld);
    }
}

readLine() 和 readPassword()  的使用说明

import java.io.Console;
import java.util.Arrays;

public class Demo {
    public static void main(String[] args) {

        Console con = System.console(); //创建安全输入对象

        //readLine() 只能用于 String、readPassword() 只能用于 char[ ] ==> 只能用于字符
        String a = con.readLine();
        char[] b = con.readPassword();  //相当于上一句,特殊:隐藏输入过程
        System.out.printf("a = %s \t b = %s\n",a, Arrays.toString(b));
        //数组的输出要用Arrays.toString(),不然输出就是隐藏地址
        //不用该方法,就要用遍历的方式

        //("提示")内可以为提示符
        String x = con.readLine("x = ");
        char[] y = con.readPassword("y = ");
        System.out.println("a = " + x + "\t" + "y = " + Arrays.toString(y));

        //("输出",输入对象)可以作为输入输出()
        String name = "变量";
        String data = con.readLine("this is data %s",name);
        char[] pwds = con.readPassword("this is password %s","123456789");

        //另外io.Console有【其他输出方式】
        con.format("this is format %s\n",name);
        con.writer().println("writer");
        
    }
}

三、输出方式

(一)不换行输出:System.out.print();

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.print("a = " + a);
        System.out.print("b = " + b);
        //运行结果:a = 1b = 2
    }
}

(二)换行输出:System.out.println();

IDEA的快捷方式:sout 

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        //运行结果:
        // a = 1
        // b = 2
        }
}

soutv:输出变量的标识符和值

soutm:输出类名.方法名

soutp:输出方法的形参名和值

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        System.out.println("a = " + a); //a = 1
        System.out.println("Demo.main");//Demo.main
        System.out.println("args = " + Arrays.deepToString(args));//args = []
        }
}


(二)格式化输出:System.out.printf();

与C语言一样的格式化输出:

字符:%c十进制整数:%d浮点数:%f无符号十进制整数:%u
字符串:%s八进制整数:%o十六进制整数:%x

输出%号:%%

布尔:%b指数:%e通用浮点数:%g(根据大小决定用e还是f)

IDEA快捷方式:souf

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        String b =  "2312123";
        System.out.printf("a = %d\n",a);    //a = 1
        System.out.printf("b = %s\n",b);    //b = 2312123
        System.out.printf("3>7的结果是:%b %n", 3>7);    //3>7的结果是:false 
        //%n 和  \n 同个意思
        System.out.printf("字母A的散列码是:%h %n", 'A');   //字母A的散列码是:41 
    }
}

  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值