Чтение строки с использованием Java New I / O - PullRequest
3 голосов
/ 07 ноября 2011

Как лучше всего прочитать строку из файла с помощью нового ввода-вывода?

Я могу получить только байт за раз.

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 15 января 2013

Или для небольших файлов вы можете сделать это:

List<String> smallFilesLines =  Files.readAllLines(  
FileSystems.getDefault().getPath("smallFile.txt"), StandardCharsets.UTF_8);  

for (String oneLine : smallFilesLines) {
   System.out.println(oneLine); 
}
2 голосов
/ 07 ноября 2011

BufferedReader * Метод readline () должен быть достаточным. В противном случае вы должны прочитать произвольное число байтов и проанализировать конечную строку '\ n' или \ r \ n ', если она находится в строке стиля Windows, заканчивающейся

1 голос
/ 07 ноября 2011

Вы имеете в виду NIO, введенный в Java 5.0 7 лет назад? Или Асинхронное добавление NIO в Java 7?

Короче говоря, простой ответ заключается в том, что использование BufferedReader намного, намного проще и не намного медленнее.

Если вы должны использовать ByteBuffer, или вы хотите, чтобы последний бит производительности, вы должны читать по одному байту за раз. (И вы справились с ситуацией, когда была прочитана только часть строки, поэтому вы можете исчерпать данные в ByteBuffer, прежде чем достигнете новой строки)

...