Java nio从文件读取行
我如何在Java中实现一个函数nio say nextLineNio()从FileChannel增量读取下一行,因为文件可能很大,我最初的想法是读入一个ByteBuffer,它的大小大于一行可能存在并读取的最大长度()从FileChannel如果需要,但我看到的问题是我如何解读不以换行符结束的最后一个字节序列。 另外我如何确保nextLineNio()函数不会失败,因为nio api是异步的。 任何帮助或已有的实现?
谢谢
正如@EJP指出的那样,使用BufferedReader.readLine()可能会获得足够的性能。除非你知道这不适合,否则我建议你保持简单。
http://vanillajava.blogspot.com/2011/01/how-slow-can-you-readwrite-files-in.html
我会记忆映射整个文件并搜索换行符以便一次获得一行。 这避免了需要担心缓冲区大小或多次读取(或读取太多的问题)
NIO默认是同步的,文件IO只是同步的(直到Java 7)。 要使套接字异步,你必须调用一个特殊的setter。
链接地址: http://www.djcxy.com/p/64085.html