Как в Java считать 2 строки из файла за цикл?

122
01 февраля 2021, 04:30

Мне нужно считать в файле строки с данными и отправлять каждую в свою коллекцию, но считывать нужно по 2 строки за цикл, и что бы в этом цикле я мог 1 строку отправить в одну коллекцию а вторую в другой.

Строка из себя представляет набор различных примитивов пример: a;1;2;s;f;2.2;, и строк таких куча.

Я знаю, что есть такой цикл, но не понимаю, как его улучшить для чтения двух строк за раз.

while ((line = reader.readLine()) != null) {
      content.add(line);
}
Answer 1

если я правильно понял - мы имеем файл с данными наподобие:

a;1;2;s;f;2.2;
b;1;2;s;f;2.2;
c;1;2;s;f;2.2;
d;1;2;s;f;2.2;
e;1;2;s;f;2.2;
f;1;2;s;f;2.2;

(Допустим, в сумме 6 строк в файле)

Читать сразу по 2 строки за одну итерацию цикла, добавляя при этом каждую строку в разную коллекцию можно следующим образом:

public class Test {
    public static void main(String[] args) throws FileNotFoundException {
        List<String> list1 = new LinkedList<>();// первая коллекция
        List<String> list2 = new LinkedList<>();// вторая коллекция
        BufferedReader reader = new BufferedReader(new FileReader("/Users/user/IdeaProjects/test/src/test/file.txt"));// читаем файл
        Iterator<String> iterator = reader.lines().iterator();
        while(iterator.hasNext()) {
            list1.add(iterator.next()); // первое чтение из файла за итерацию
            if(iterator.hasNext()) {
                list2.add(iterator.next()); // второе чтение из файла за итерацию
            }
        }
        System.out.println(list1);
        System.out.println(list2);
    }
}

Вывод программы:

[a;1;2;s;f;2.2;, c;1;2;s;f;2.2;, e;1;2;s;f;2.2;]
[b;1;2;s;f;2.2;, d;1;2;s;f;2.2;, f;1;2;s;f;2.2;]
Answer 2
while ((line = reader.readLine()) != null) {
    content.add(line);
    if((line = reader.readLine()) != null)
        content.add(line);
}
READ ALSO
Android получить метаданные изображения

Android получить метаданные изображения

Как можно получить метаданные(время создания и размер файла) png изоражения? По возможности без подключения сторонних бибилиотек

104
Как изменить переменную java

Как изменить переменную java

Мне нужно изменить значение переменный, в чём ошибка

146
Не срабатывает join JS

Не срабатывает join JS

Нужно сформировать строку с элементов массива, добавление в массив у меня происходит через ключ элемента, массив объявляется через фигурные...

96