2011-01-12 180 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++ 
/////////////////////////////////////////////////////////////// 
}