2012-10-05 47 views

回答

3

您可以使用java.io.RandomAccessFile中。

移動到第100行中使用以下行:

RandomAccessFile file = new RandomAccessFile("D:\\test.txt", "rw"); 
int totalLines = (int)file.length(); 
file.seek(100); 
long pointer = file.getFilePointer(); 


for(int pt = 100; ct < totalLines; ct++){ 
    byte b = file.readByte(); //read byte from the file 
    System.out.print((char)b); //convert byte into char 
} 

file.close(); 

有關詳細信息,請參閱下面的鏈接,將幫助你: http://tutorials.jenkov.com/java-io/randomaccessfile.html

3

不,不管抽象如何,真正沒有一種「直接」從文件系統讀取第100行的有效方法。你當然可以使用偏移量,以防你有每行固定長度的線條(假設爲CR或LF等),但就是這樣。您不能在基於「行」抽象的文件中跳轉。

0

在大多數情況下,您需要從文件的起始處開始逐行閱讀。

有例外:

  • 如果您創建和維護,指示各行開始的位置的文件的索引,你可以在索引查找一條線,然後seek的文件讀取它的位置。

  • 如果您的文件包含固定長度的行,則可以計算行的起始位置爲line_no * line_length,然後seek到該位置。