簡體   English   中英

java nio從文件中讀取行

[英]java nio reading lines from a file

我如何在java中實現一個函數nio說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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM