Чтение следующей строки в Java - PullRequest
1 голос
/ 18 ноября 2011

В Java существует несколько способов ввода / вывода. Как решить, какой использовать. Например:

Я могу принять ввод пользователя через стандартный ввод двумя способами:

Метод 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 ]

4 голосов
/ 18 ноября 2011

Рекомендация заключается в том, что вы используете класс, имеющий необходимый API-интерфейс. Если вы просто читаете строки, BufferedReader.readLine(). Если вы читаете токены и хотите, чтобы они конвертировались для вас, Scanner. Если вы читаете двоичные данные, DataInputStream. Если вы читаете объекты, ObjectInputStream.readObject(). Если вы читаете XML, парсер XML. И т. Д. И т. Д. Если вы читаете Java, JavaCC; -)

2 голосов
/ 18 ноября 2011

Метод, с помощью которого вы читаете ввод из любого источника в Java, напрямую связан с данными, которые вы планируете читать из этого источника.Если вы хотите читать простые текстовые / примитивные типы, то Scanner - это хорошо и просто, но вы можете зайти так далеко, чтобы использовать ObjectInputStream, если планируете читать целые Объекты из источника.

Есливам нужен источник потоков ввода / вывода Java .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...