2011-01-12 202 views
1

是否可以筆寫文本文件,讀取幾行文字,關閉文本文件,重新打開文本文件並開始從您之前離開的行讀取數據?或者你總是不得不從頂端開始?開始從特定行中讀取文本文件

+2

那麼,如果文件內容在關閉和重新打開文件之間發生變化,該怎麼辦?相同的路線仍然適用於重新開始閱讀? – 2011-01-12 18:20:51

+0

我假設你只能追加到文件。 – 2011-01-12 18:22:08

回答

0

我很確定每次打開文件時,它都會從頭開始。

1

我只是每次從頭開始。這是最簡單的,可能不會太慢​​。你可以使用RandomAccessFile,但是你必須用自己的在線閱讀器來包裝它(以及檢查文件沒有以不兼容的方式進行更改)

0

難道你不能只在外部保存行號並跳轉到/尋找所需的位置?

1

你當然可以!這不會是最快的方法,但它會起作用。順便說一下,那些對你的問題作出迴應的人告訴你,你應該從文件的開頭開始重新處理。完全沒有提到你的問題。有足夠的理由想要回到你離開的地方。

下面是我寫的一些代碼,允許您存儲計數器值,然後遍歷文件,直到您重新達到計數器值...此時循環會影響並處理循環中的內容爲其餘的線路。

乾杯!

//define input text file 
def file = new File('C:\\inputtextfile.txt') 
//define file for the last referenced counter 
def CountFile = new File ('C:\\prime\\lastcount.txt') 

//if the counter was null set it to zero 
if (CountFile.eachLine({it}) == null){ 
CountFile.write('0') 
} 

//read the counter into a value 
StartLine = CountFile.eachLine({it}) as long 
//set the first line of the file 
lineCount=0 

file.eachLine { line -> 
if (lineCount >= StartLine){ 


//write the counter to a text file 
//////////////////////////////////////////////////////////////// 
CountFile.write(lineCount.toString()) 
    lineCount++ 
/////////////////////////////////////////////////////////////// 
}