可能重複:
Read a specific line from a text file如何根據文件編號在java中讀取文件?
有沒有辦法閱讀在java.I一個文件中的行意思是,如果我想讀的100線纔可以我直接讀取?或者我必須閱讀整個文件,直到第100行。
可能重複:
Read a specific line from a text file如何根據文件編號在java中讀取文件?
有沒有辦法閱讀在java.I一個文件中的行意思是,如果我想讀的100線纔可以我直接讀取?或者我必須閱讀整個文件,直到第100行。
您可以使用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
不,不管抽象如何,真正沒有一種「直接」從文件系統讀取第100行的有效方法。你當然可以使用偏移量,以防你有每行固定長度的線條(假設爲CR或LF等),但就是這樣。您不能在基於「行」抽象的文件中跳轉。
在大多數情況下,您需要從文件的起始處開始逐行閱讀。
有例外:
如果您創建和維護,指示各行開始的位置的文件的索引,你可以在索引查找一條線,然後seek
的文件讀取它的位置。
如果您的文件包含固定長度的行,則可以計算行的起始位置爲line_no * line_length
,然後seek
到該位置。
[現有SO問題](HTTP://計算器。 com/questions/2138390 /從文本文件中讀取特定行) – Less
@它是相關的,但它提出了一個不同的問題。 –