使用Java New I / O读取行

时间:2011-11-07 11:42:17

标签: java file line nio

使用New I / O从文件中读取一行的最佳方法是什么?

我一次只能得到一个字节。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

或者对于小文件,您可以这样做:

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

for (String oneLine : smallFilesLines) {
   System.out.println(oneLine); 
}

答案 1 :(得分:2)

BufferedReader的readline()方法应该足够了。否则你必须读取任意数量的字节并解析结束'\ n'或\ r \ n'如果它在窗口样式行结束

答案 2 :(得分:1)

您是指7年前在Java 5.0中引入的NIO吗?或者在Java 7中添加异步NIO?

简而言之,简单的答案是使用BufferedReader更加简单,速度也慢得多。

如果必须使用ByteBuffer,或者想要最后一点性能,则必须一次读取一个字节。 (并且您已经处理了只读取了部分行的情况,因此在到达新行之前,您可以在ByteBuffer中耗尽数据)