Java的输入和输出对于初学者来说是件很头疼的事,尤其是之前用过c或c++的人。c用scanf输入,c++可以直接用cin和cout输入输出,相当方便。而Java 的输入和输出单看要输入的字符是比c和c++多很多的,本篇文章主要介绍Java的输入和输出。
一.Java的输入
说到Java输入就不得不提Java Scanner 类了。
1.Java Scanner 类
要使用这个类,我们首先要把包导入:
import java.util.Scanner;
Java Scanner 类具有扫描器功能,我们可以通过创建该类对象,来实现扫描用户输入的数据:
Scanner s = new Scanner(System.in);
2.Scanner 类的方法
我们可以通过Scanner类提供各种方法来接受用户输入的数据:
方法 | 描述 |
---|---|
nextInt() | 从用户读取int值 |
nextFloat() | 从用户读取float值 |
nextBoolean() | 从用户读取boolean值 |
nextLine() | 从用户读取一行文本 |
next() | 从用户那里读取一个单词 |
nextByte() | 从用户读取byte值 |
nextDouble() | 从用户读取double值 |
nextShort() | 从用户读取short值 |
nextLong() | 从用户读取long值 |
3.例子
这里举一个例子:
Scanner scan = new Scanner(System.in);
int n= scan.nextInt(); //引用类的方法接收数据
double d= scan.nextDouble();
上面这种写法不是完全的,是不严谨安全的。
完整的:
Scanner scan = new Scanner(System.in);
if (scan.hasNext()) {
String str = scan.next();
System.out.println("输入的数据为:" + str);
}
scan.close();
hasNext的作用是判断是否有数据输入。判断浮点型或整形用如:hasNextFloat()这种判断。
4.next() 与 nextLine() 区别
next():
1.一定要读取到有效字符后才可以结束输入;
2.对输入有效字符之前遇到的空白,next() 方法会自动将其去掉;
3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符;
next() 不能得到带有空格的字符串。
nextLine():
1.以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符;
2.可以获得空白。
5.补充
java.io包的PrintWriter类可用于以通常可读的形式(文本)写入输出数据。
java.util包的Scanner类用于从不同的源(例如输入流,用户,文件等)读取输入数据。
二.Java的输出
输出比较简单明了,主要有三种:System.out.println(); 或 System.out.print(); 或 System.out.printf();
1.三者区别
System.out.println(); 打印括号内的内容会换行,相当与c中加了一个 \n
System.out.print(); 与上的基本相同,不同的是其打印完不会换行
System.out.printf(); 功能与c中的 printf() 相同
2.例子
int n=10;
float f=1;
System.out.println(n+"字符串");
System.out.println(f+"字符串");
可以通过加号自行拼接。
三.标准输入输出流
1.System.in
System.in 编译类型:InputStream ; 运行类型:BufferedInputStream。
表示的是标准输入:键盘。
2.System.out
System.out 编译类型:PrintStream ; 运行类型:PrintStream。
表示的是标准输出:显示器。