2015-11-13 5 views
0

Мне нужно прочитать содержимое большого файла. Для этого я искал его и нашел так много методов и ресурсов. Но я до сих пор путают, который является метод для чтения больших файлов (факторы необходимо учитывать в моем случае являются распределение памяти, производительность, большой файл)Прочитать большой файл с помощью Java NIO

  1. Использование FileChannel
  2. с помощью Files.readAllLines
  3. с использованием BufferedReader

Может ли кто-нибудь руководствоваться этим?

+0

И что вы будете делать с содержимым? Кроме того, поскольку вы упоминаете '.readAllLines()', я понимаю, что это текст? – fge

+0

@DavidG Я действительно не добавлял эти строки. Здесь что-то не так ... Я удалил кепки из заголовка и изменил список (также изменил так «i» на «I», но это все – LBes

+1

@DavidG Он не добавил этого. Он просто не обновил свое редактирование после того, как кто-то еще сделал редактирование до него. Я не знаю, просто ли он проигнорировал сообщение об этом факте во время его редактирования. – Tom

ответ

1

Ваш лучший вариант - прочитать файл лениво. Выбирайте каждую линию по очереди и обрабатывайте.

Пример: -

Stream<String> lines = Files.lines(Paths.get("C:/files", "yourfile.txt")); 

Затем обработать строки послесловий.

Из документации official: -

public static Stream<String> lines(Path path, Charset cs) throws IOException 

Читать все строки из файла в виде потока. В отличие от readAllLines, этот метод не считывает все строки в список, а вместо этого заполняет лениво, когда поток потребляется.

+0

Это хорошо для производительности? Могу ли я использовать это в любом случае? – yk2

+0

@ KALYANIYOGESWARANATHAN Да, поскольку обработка происходит по одной строке за раз (лениво), это не проблема с производительностью – Switch

+0

@KALYANIYOGESWARANATHAN Примите, пожалуйста, ответ, если найдете то, что ищете. – Switch