在Java中似乎有多种方法可以进行I / O.如何决定使用哪一个。 例如:
我可以通过以下两种方式通过stdin接受用户的输入:
方法1:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";
try{
System.out.println("Enter: ");
input = br.readLine();
}catch(IOException e)
{
e.printStackTrace();
}
方法2:
Scanner sc = new Scanner(System.in);
System.out.println("Enter Scanner: ");
input = sc.nextLine();
System.out.println(input);
我很确定可能还有其他方法可以读取输入。在选择用于特定操作的方法时,是否有任何指导方针可以遵循(从文件,套接字,标准输入读取)
答案 0 :(得分:4)
指南是您使用具有所需API的类。如果您只是阅读行BufferedReader.readLine()
。如果您正在阅读令牌并希望它们为您转换,Scanner
。如果您正在阅读二进制数据DataInputStream
。如果您正在阅读对象,ObjectInputStream.readObject()
。如果您正在阅读XML,那就是XML解析器。等等等。如果您正在阅读Java,JavaCC
; - )
答案 1 :(得分:2)
从Java中的任何源读取输入的方法与您计划从该源读取的数据直接相关。如果你想阅读纯文本/原始类型,那么Scanner
很简单,但如果你计划从源读取整个对象,你可以使用ObjectInputStream
。
如果您需要来源Java I/O Streams。