Java Поток объектов из двоичного файла - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь прочитать файл, который содержит список объектов, которые там легко разобрать, прочитав несколько байтов шаг за шагом.Но в этом случае мне нужно иметь поток объектов.При поиске все, что я получил, было Stream<String> Files.lines, которое подходит только для текстовых файлов, а не двоичных.

Так как же я могу генерировать поток объектов из двоичного файла?

1 Ответ

0 голосов
/ 29 ноября 2018

Два основных варианта:

  1. Реализуйте Spliterator, затем создайте поток из него, вызвав StreamSupport.stream(Spliterator<T> spliterator, boolean parallel)

  2. Реализуйте Supplier, затем создайте из него поток, вызвав Stream.generate(Supplier<T> s)

# 2 самый простой:

try (BufferedReader in = Files.newBufferedReader(path)) {
    Stream.generate(() -> readNext(in))
          .forEach(obj -> ...); // or whatever your stream needs to do
}
static MyObject readNext(BufferedReader in) {
    // code here
}
...