2012-02-24 205 views
0

我正在嘗試用BufferedReader將第一行文件讀入字符串。我該怎麼做呢?另外我怎樣才能讀取整個文件的字符串?如何讀取像readline(int line)這樣的特定行,而不必重複前面的行?如何用BufferedReader讀取文件的第一行?

File namefile = new File(root, ".name"); 
FileReader namereader = new FileReader(namefile); 
BufferedReader in = new BufferedReader(namereader); 
+0

http://stackoverflow.com/questions/7175161/how-to-get-file-read-line-by-line看它是否能夠幫助它類似於你想實現的東西 – Devjosh 2012-02-24 14:02:31

+0

如果(從你的意見到答案)你想知道如何在不讀取文件中的任意行的情況下訪問文件中的任意行(隨機訪問),你應該明確你的問題的措辭。 – Dev 2012-02-24 14:54:27

+0

@dev對不起,我會說英語,但對於我來說這是很難的,因爲我沒有太多的編程背景。謝謝你的理解。 – 2012-02-24 15:41:24

回答

4

您可以使用BufferedReader.readLine()來獲得第一行。

注意,要readLine()下一個電話將讓你的二號線,而接下來的3號線....

編輯:
如果要指定一個特定的線路,爲您的評論建議 - 您可能想使用Apache Commons FileUtils,並使用:FileUtils.readLines()。它會給你一個List<String>,你可以像任何列表一樣處理,包括獲取特定的行。請注意,它有更多的開銷,因爲它讀取整個文件,並用它的行填充List<String>

+0

是否可以指定一個特定的行? – 2012-02-24 14:06:46

+0

@BinoyBabu:看看我的編輯,如果你想要一個特定的行 - 你可能想要使用Apache公用程序 - 'FileUtils' – amit 2012-02-24 14:11:48

+1

@Binoy你應該編輯你的問題,包括那個標準,如果這是你的要求。 – Dev 2012-02-24 14:59:45

4

嗯,有什麼錯BufferedReader.readLine()

讀取一行文字。換行符被換行符('\ n'),回車符('\ r')或回車符後面的換行符中的任何一個結束。

(我沒有看到雖然readFile()方法的跡象 - ?是你在看什麼文檔)

我個人更喜歡使用FileInputStream包裹在InputStreamReader而不是FileReader的方式,否則它將始終使用平臺默認編碼 - 你確定你想要什麼?

+0

它整個讀取文件的權利?我不能指定像BufferedReader.readLine(1)這樣的行; – 2012-02-24 14:02:00

+0

@BinoyBabu:不,它按照文檔所述讀取一行。查看方法** readLine **的名稱,而不是** readFile **。 – 2012-02-24 14:03:12

+1

由於讀取器被緩衝,BufferedReader#readLine很可能讀取比源代碼中的第一行更多的內容,即使它只被調用一次。從性能角度來看,這在大多數情況下可能是無關緊要的,但在某些情況下,功能差異是相關的。 – jarnbjo 2012-02-24 14:06:10

3
final File namefile = new File(root, ".name"); 
final FileReader namereader = new FileReader(namefile); 
final BufferedReader in = new BufferedReader(namereader); 
in.readLine(); 
相關問題