由于近期学的内容实际操作比較多,所以新的笔记就用代码为主体吧!
本回主要内容是输入,Java中主要用Scanner类和BufferedReader。整体来说不难,但有些细节能够总结,看代码:
import java.io.*;
import java.util.Scanner;
public class ioTest
{
public static void main(String[] args)
throws Exception
{ //Scanner提供了多种构造器,不同的构造器能够接受文件、输入流、字符串作为数据源
//用于从中提取解析出基本类型值和字符串值 //此处System.in代表键盘输入
Scanner sc = new Scanner(System.in);
//默认是空格,使用正則表達式
sc.useDelimiter("\n");
//hasNextXxx(),xxx不写时,默觉得字符串
//有下一项则返回true,但若没有下一项则并不一定返回false,也有可能被堵塞,此处为堵塞
while(sc.hasNext())
{
//输出输入项
String next = sc.next();
if(next.equals("exit")) break;
System.out.println("键盘输入的内容是"+ next);
} String s = "hello cer";
Scanner ss = new Scanner(s);
//此处返回false
while(ss.hasNext())
{
System.out.println("字符串的内容是:"+ss.next());
} //总是读取String对象
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null)
{
System.out.println("用户键盘输入是:"+ line);
}
}
}
输出结果:
$ java ioTest
cer
键盘输入的内容是cer
exit
字符串的内容是:hello
字符串的内容是:cer
test String
用户键盘输入是:test String
正如凝视写的一样,对键盘输入的Scanner的hasNext(),在没有下个token的时候,会block的特性,更加有用。