java.util.Scanner
获取用户键盘输入
使用hasNext()和next()方法
Scanner scanner = new Scanner(System.in);
System.out.println("请输入……");
if (scanner.hasNext()) {
System.out.println("输入内容为:" + scanner.next());
}
// IO操作如果不关闭会一直占用资源
scanner.close();
执行结果
请输入……
hello world
输入内容为:hello
hasNext()和next()以空格和换行作为分隔符,换行作为结束符,如果输入内容有空格,每次只能读取一部分内容。
如果将代码改成while循环
Scanner scanner = new Scanner(System.in);
System.out.println("请输入……");
while (scanner.hasNext()) {
System.out.println("输入内容为:" + scanner.next());
}
执行结果
请输入……
hello world
输入内容为:hello
输入内容为:world
但是程序一直处于运行状态,等待用户继续输入
使用hasNextLine()和nextLine()
Scanner scanner = new Scanner(System.in);
System.out.println("请输入……");
if (scanner.hasNextLine()) {
System.out.println("输入内容为:" + scanner.nextLine());
}
// IO操作如果不关闭会一直占用资源
scanner.close();
执行结果
请输入……
hello world
输入内容为:hello world
hasNextLine()和nextLine()以换行符作为分隔符和结束符,可以读取空格。
System.in
System是java.lang包下的一个类,in是System下的一个常量,类型为InputStream
public final static InputStream in = null;
Scanner是java.util包下的一个类
Scanner scanner = new Scanner(System.in);
从代码可以看出Scanner类的构造方法可以接收InputStream类型的参数,比如FileInputStream,因此Scanner也可以进行文件的操作,文件操作中,“
”作为换行符。
File file = new File("E:" + File.separator + "1.txt");
// 判断文件是否存在
if (file.exists()) {
InputStream in = null;
Scanner scanner = null;
try {
in = new FileInputStream(file);
scanner = new Scanner(in);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
scanner.close();
}
}
关闭IO操作是一个好习惯!
java.util.Scanner
原文:https://www.cnblogs.com/qixioa/p/13630103.html