Как мне прочитать форматированный ввод в Java? - PullRequest
5 голосов
/ 12 сентября 2009

Предположим, мой входной файл содержит:

3 4 5 6    7        8
9


10

Я хочу запустить цикл while и прочитать целые числа, чтобы я получал 3,4,5,6,7,8 и 10 соответственно после каждой итерации цикла.

Это действительно просто сделать в C / C ++, но не в Java ...

Я попробовал этот код:

try {
            DataInputStream out2 = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));

            int i=out2.read();
            while(i!=-1){
                System.out.println(i);
                i=out2.readInt();
            }

    } catch (IOException ex) {

    }

и что я получаю:

51
540287029
540418080
538982176
151599117
171511050
218762506
825232650

Как прочитать целые числа из этого файла в Java ?

1 Ответ

15 голосов
/ 12 сентября 2009

Можно использовать класс Scanner и метод nextInt:

Scanner s = new Scanner("3  4        5   6");

while (s.hasNext()) {
  System.out.println(s.nextInt());
}

Выход:

3
4
5
6

По умолчанию, объект Scanner игнорирует все пробелы и получает следующий токен.

Класс Scanner в качестве конструктора , который принимает InputStream в качестве источника для символьного потока, поэтому можно использовать FileInputStream который открывает источник текста.

Замените экземпляр Scanner в приведенном выше примере следующим:

Scanner s = new Scanner(new FileInputStream(new File(filePath)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...