在学习网络编程中,有需要从控制台输入数据,进行两个线程之间的通信,其中,涉及到了读取控制台输入的两种不同的操作,笔者在这里进行记录,以供大家分享。
方法一、InputStreamReader
- 本身只能单个字符地读取数据
- 通过BufferedStreamReader包装后,存在缓存,支持整行整行地读取数据
- 只能读取字符/字符串,如想获取其他类型的数据,仍需要进行类型转换
检测实例如下:
public static User getUser2() throws IOException {
BufferedReader br = new
BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入账号");
String username = br.readLine();
System.out.println("请输入密码");
String password = br.readLine();
br.close();
return new User(username,password);
}
方法二:Scanner
在获取控制台输入的方法中,创建Scanner对象来获取是最佳的方法,其有以下优势:
- 可以获取各种类型的数据,如String、Int、Float等,且不需要进行转换
- 支持诸多的文本扫描内容,如hasNextLine()方法可以检测是否存在