Читать строки потоками и сохранять по блокамJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Читать строки потоками и сохранять по блокам

Сообщение Anonymous »

У меня есть процесс Java (CronJob K8S), который считывает около 500 тысяч строк файла (в Google Cloud Storage).
Я читаю каждую строку с помощью Java Streams, но «иногда» процесс может быть остановлен (например: из-за проблем с сетью) и процесс перезапускается.
Я хотел бы продолжить с того же места, где процесс остановился. Нет базы данных, в которой можно было бы что-либо сохранить.
Я думал о следующих шагах:
  • Прочитайте файл с помощью: Files.lines(path).forEach
  • Выполняет обработку
  • Сохраняет в ArrayList прочитанные строки
  • Сохраняет в ArrayList прочитанные строки
  • Сохраняет в ArrayList прочитанные строки
  • Сохраняет в ArrayList li>
    И удалите эти строки в исходном файле.
  • Если процесс останавливается, при следующем выполнении он читает файл в том же месте.
Но у меня проблема в последнем пункте.
Я пробовал:

Код: Выделить всё

Files.write(path, listTmp,  StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING);
Но чтобы все работало нормально, мне нужно загрузить все содержимое файла в ArrayList, затем удалить прочитанные строки и сохранить результат.
Есть ли возможность избежать чтения всего содержимого файла? Может быть, сохранить номер строки?

Подробнее здесь: https://stackoverflow.com/questions/667 ... -by-blocks
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# Очереди сообщений между потоками и общие проблемы с потоками
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • C# Очереди сообщений между потоками и общие проблемы с потоками
    Anonymous » » в форуме C#
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • C# Очереди сообщений между потоками и общие проблемы с потоками
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Для глубокого обучения: сохранять каждый образец отдельно или сохранять блоки? данные не помещаются в память
    Anonymous » » в форуме Python
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Применение notranslate Google ко всем блокам katex
    Гость » » в форуме CSS
    0 Ответы
    35 Просмотры
    Последнее сообщение Гость

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