我有一個包含近6000行的LONG .txt文件!有時我需要檢索信息。在5000行。是否有可能從第5000行開始閱讀而不是從頭開始閱讀?使BufferedReader從.txt文件的中間開始而不是開始?
謝謝。
我有一個包含近6000行的LONG .txt文件!有時我需要檢索信息。在5000行。是否有可能從第5000行開始閱讀而不是從頭開始閱讀?使BufferedReader從.txt文件的中間開始而不是開始?
謝謝。
無論6000線長或不取決於平均線的長度。即使每行有100個字符,這也不是很長。
不過,如果您知道行5000開始的位置,則可以從行5000讀取。不幸的是,大多數時候你必須閱讀1到4999行才能找到答案。
5000線是沒有那麼大,它會做一個順序文件訪問,這個簡單的想法可以工作:
BufferedReader in = new BufferedReader(new InputStreamReader(fileName));
for (int i = 0; i < 5000 && in.ready; in.readLine()) { }
if (in.ready()) {
// you are at line 5000;
} else {
// the file is smaller than 5000 lines
}
另一個想法是使用bufferedRead.skip(n)的方法,但對於它的每一行應該有相同的長度。舉例來說,每行有100個字符,你需要這樣做:
int ls = System.getProperty("line.separator").length();
in.skip((100 + ls) * 5000);
在Java中,6000行並不足以擔心。由於最大的成本是訪問磁盤,它不會節省您很多時間。 〜10毫秒。其他一切都比較小。 – 2011-05-02 10:00:25