Java基本输入输出

Java是一门面向对象的编程语言,提供丰富的类库处理输入输出。基本输入输出涉及System类的in和out,用于标准输入流和输出流,如键盘和控制台。Scanner类用于从输入流读取数据,如整数、浮点数和字符串。System类和PrintStream类则用于输出数据到控制台或文件。需要注意Scanner的nextLine方法可能遇到的换行符问题以及关闭资源的操作。
摘要由CSDN通过智能技术生成

Java是一门面向对象的编程语言,它提供了丰富的类库,用于处理各种类型的输入和输出。在Java中,基本输入和输出指的是使用System类的in和out字段,分别表示标准输入流和标准输出流。标准输入流通常是键盘,标准输出流通常是控制台。我们可以使用Scanner类来从标准输入流读取数据,使用System类的print方法或者PrintStream类的println方法来向标准输出流写入数据。

Scanner类

Scanner类是一个文本扫描器,它可以从一个输入流中解析出基本类型和字符串数据。我们可以使用Scanner类的构造方法来创建一个Scanner对象,并传入一个输入流作为参数,例如:

Scanner sc = new Scanner(System.in); //创建一个Scanner对象,从标准输入流读取数据

然后,我们可以使用Scanner类的各种方法来读取不同类型的数据,例如:

int a = sc.nextInt(); //读取一个整数
double b = sc.nextDouble(); //读取一个浮点数
String c = sc.next(); //读取一个单词(以空白符为分隔符)
String d = sc.nextLine(); //读取一行文本(以换行符为结束符)
boolean e = sc.hasNext(); //判断是否还有下一个输入
boolean f = sc.hasNextInt(); //判断下一个输入是否是一个整数

需要注意的是,当我们使用nextLine方法时,如果之前使用了其他方法读取了数据,那么nextLine方法会读取剩余的换行符,并返回一个空字符串。为了避免这种情况,我们可以在nextLine方法之前调用一次nextLine方法来清除缓冲区中的换行符,例如:

int a = sc.nextInt(); //读取一个整数
sc.nextLine(); //清除换行符
String b = sc.nextLine(); //读取一行文本

另外,当我们使用Scanner类读取数据时,需要注意关闭Scanner对象,以释放资源,例如:

sc.close(); //关闭Scanner对象

System类和PrintStream类

System类是一个系统相关的工具类,它提供了一些静态字段和方法,用于访问系统属性和资源。其中,System类的in和out字段分别表示标准输入流和标准输出流。我们可以使用System类的setIn方法和setOut方法来改变这两个字段的值,例如:

System.setIn(new FileInputStream("input.txt")); //将标准输入流重定向到文件input.txt
System.setOut(new PrintStream("output.txt")); //将标准输出流重定向到文件output.txt

然后,我们可以使用System类的print方法或者PrintStream类的println方法来向标准输出流写入数据,例如:

System.out.print("Hello"); //向标准输出流写入字符串Hello
System.out.println("World"); //向标准输出流写入字符串World,并换行

需要注意的是,当我们使用print方法或者println方法时,数据并不会立即写入到目标设备中,而是先存放在缓冲区中。为了确保数据被及时写入到目标设备中,我们可以使用flush方法来刷新缓冲区,例如:

System.out.flush(); //刷新缓冲区
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值