Вот мое решение с Java 8:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
public class BR {
public static void main(String[] args) {
String fileName = "br.txt";
//for the csv format
String regex = ", ";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
List<String[]> lines = br.lines()
.map(line -> line.split(regex))
.collect(Collectors.toList());
parse(lines);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void parse(List<String[]> lines) {
//Do your stuff here
}
}
Инициализация BufferedReader находится в блоке try (этот подход называется try с ресурсами), поскольку BufferedReader реализует AutoCloseable (интерфейс), поэтомув случае возникновения исключения читатель закроется.
Метод br.lines () возвращает все строки из файла.В функции карты вы передаете линию, которая является рад в лямбда-выражении.Строка разделяется с помощью переменной split (для формата CSV это ',') и возвращается и собирается.
Результатом является список массивов строк, которые можно изменить в теле функции карты.
Для большей ясности я предлагаю вам ознакомиться с некоторыми учебными пособиями по Java 8, и вы полностью поймете, что происходит.
Это решение может не подходить для вашего уровня знаний (я полагаю), но надеюсь, что оно вдохновит вас на проверку некоторых более изощренных и современных подходов.
Хорошего дня.