基本上,我正在尋找添加到.txt文件,具體取決於是否已存在特定行。Java - 檢查所有行上現有文本的.txt
I.e.如果該行不存在,則將該行添加到.txt文件中。 不要將該行添加到.txt文件(如果存在)。
每一行獨自站在
例如
一個
兩個
三
,而不是 一,二,三等
我想使用的readLine(),但似乎它定義結束一個休息時間的線路,就像我的線路一樣。該方法不帶任何參數(例如行號),所以我非常簡短:/。
任何他
基本上,我正在尋找添加到.txt文件,具體取決於是否已存在特定行。Java - 檢查所有行上現有文本的.txt
I.e.如果該行不存在,則將該行添加到.txt文件中。 不要將該行添加到.txt文件(如果存在)。
每一行獨自站在
例如
一個
兩個
三
,而不是 一,二,三等
我想使用的readLine(),但似乎它定義結束一個休息時間的線路,就像我的線路一樣。該方法不帶任何參數(例如行號),所以我非常簡短:/。
任何他
您可以按照您的建議使用readLine()方法RandomAccessFile來讀取文件的每一行,查找預期的文本。
從Javadoc中的readLine():
文本行由 回車字符( '\ r'),一個 換行符( '\ n')終止,一個 立即返回字符 後跟一個換行符,或 該文件的結尾。
如果未找到預期的文本,則可以使用RandomAccessFile之一的寫入方法,例如, writeUTF()或writeBytes()將文本行添加到文件中。
但是如果我去使用readLine ()不會只是讀第一行,然後終止? – 2011-06-15 09:41:18
記住:線路是這樣的: 一個 等。 據我所知,搜索停止時,只要有一個換行符。 如何指定哪一行使用readLine()?該方法不帶任何參數。 謝謝你的輸入:)。 – 2011-06-15 09:42:42
啊... 我剛剛讀了你鏈接的javadoc ..似乎readLine()讀取下一行。這是否意味着每一次,無論在哪裏,只要它在同一個流中(例如它可以在流中的for循環中?),它會調用下一行? – 2011-06-15 10:34:43
基本上,你首先要掃描的話,你正在尋找的部分或全部,文件,然後附加詞,如果它不存在。
你可以使用readLine()
,但是如果你不介意第三方lib中,你可以嘗試Guava:
File theFile = ...
String theWord = ...
String text = Files.toString(theFile, "utf-8");
if (!text.contains(theWord)) {
Files.append(theWord, theFile, "utf-8")
}
恐怕我不能在這種情況下使用第三方庫:/謝謝輸入 – 2011-06-15 09:40:39
@Mike,方法仍然是一樣的,只是稍微詳細一點 – 2011-06-15 10:58:08
你爲什麼不使用循環和逐行讀取文本文件行?循環後,如果您沒有找到該行,請將其追加到文件的末尾。
你如何定義一個行的結束,除了休息? – Paul 2011-06-14 20:47:55