Как читать большой файл, анализируя предложения, разделенные точкой, в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Как читать большой файл, анализируя предложения, разделенные точкой, в Java

Сообщение Anonymous »

Я пытаюсь прочитать очень большой файл (~2 ГБ). Содержимое представляет собой непрерывную строку с предложениями (я хотел бы разделить их по символу «.»). Как бы я ни старался, в итоге получаю ошибку «Недостаточно памяти».
BufferedReader in = new BufferedReader(new FileReader("a.txt"));
String read = null;
int i = 0;
while((read = in.readLine())!=null) {
String[] splitted = read.split("\\.");
for (String part: splitted) {
i+=1;
users.add(new User(i,part));
repository.saveAll(users);
}
}

также
inputStream = new FileInputStream(path);
    sc = new Scanner(inputStream, "UTF-8");
    while (sc.hasNextLine()) {
        String line = sc.nextLine();
        // System.out.println(line);
    }
    // note that Scanner suppresses exceptions
    if (sc.ioException() != null) {
        throw sc.ioException();
    }


Содержимое файла (составленное из случайных слов с точкой после 10 слов):
fmfbqi .xcdqnjqln kvjhw pexrbunnr cgvrqlr fpaczdegnb puqzjdbp gcfxne jawml aaiwwmo ugzoxn .opjc fmfbqi .xcdqnjqln kvjhw pexrbunnr cgvrqlr fpaczdegnb puqzjdbp gcfxne jawml aaiwwmo ugzoxn .opjc (so on)

Вернуться в «JAVA»