Sobes.tech
Назад к вопросам
Junior — Middle
66

Можно ли осуществить обход строк документа, используя ленивую инициализацию данных?

Ответ от нейросети

sobes.tech AI

Да, в Java можно обойти строки документа с использованием ленивой инициализации, например, с помощью потоков (Streams) или итераторов, которые загружают и обрабатывают строки по мере необходимости, а не сразу все.

Пример с использованием Stream API для чтения файла построчно:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class LazyFileReader {
    public static void main(String[] args) {
        String filePath = "path/to/file.txt";
        try (Stream<String> lines = Files.lines(Paths.get(filePath))) {
            lines.forEach(line -> {
                // Обработка строки
                System.out.println(line);
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Метод Files.lines() возвращает Stream, который читает строки файла по мере обхода, что позволяет экономить память при работе с большими файлами. Таким образом, данные инициализируются лениво — строки загружаются только когда они нужны.