使用New I / O从文件中读取一行的最佳方法是什么?
我一次只能得到一个字节。
有什么想法吗?
答案 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中耗尽数据)