在Java中阅读下一行

时间:2011-11-17 22:38:27

标签: java io

在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);

我很确定可能还有其他方法可以读取输入。在选择用于特定操作的方法时,是否有任何指导方针可以遵循(从文件,套接字,标准输入读取)

2 个答案:

答案 0 :(得分:4)

指南是您使用具有所需API的类。如果您只是阅读行BufferedReader.readLine()。如果您正在阅读令牌并希望它们为您转换,Scanner。如果您正在阅读二进制数据DataInputStream。如果您正在阅读对象,ObjectInputStream.readObject()。如果您正在阅读XML,那就是XML解析器。等等等。如果您正在阅读Java,JavaCC; - )

答案 1 :(得分:2)

从Java中的任何源读取输入的方法与您计划从该源读取的数据直接相关。如果你想阅读纯文本/原始类型,那么Scanner很简单,但如果你计划从源读取整个对象,你可以使用ObjectInputStream

如果您需要来源Java I/O Streams