我有一個文本文件,我只想更改文件的第一行。該文件可能長達數百萬行,所以我寧願不必循環一切,所以我想知道是否有另一種方式來做到這一點。替換Java中的第一行文本文件
我還想將一些規則應用到第一行,以便用某些詞替換某些詞的實例。
這可能嗎?
我有一個文本文件,我只想更改文件的第一行。該文件可能長達數百萬行,所以我寧願不必循環一切,所以我想知道是否有另一種方式來做到這一點。替換Java中的第一行文本文件
我還想將一些規則應用到第一行,以便用某些詞替換某些詞的實例。
這可能嗎?
A RandomAccessFile
將做的伎倆,除非產生的線的長度不同於原始線的長度。
如果發現您被迫執行復制(第一行被替換,其餘數據將被按原樣複製),我建議使用BufferedReader
和BufferedWriter
。首先使用BufferedReader
的readLine()
來閱讀第一行。修改它並將其寫入BufferedWriter
。然後使用char[]
陣列執行文件其餘部分的蠻力副本。這將比逐行復制效率更高。讓我知道如果你需要的細節..
另一種選擇是執行讀取和寫入同一個文件。但它會更復雜一些。 :)讓我知道你是否需要這方面的細節。
你想要一個RandomAccesssFile。使用該文件,您可以在文件中的任何位置讀取和寫入文件。
它非常類似於InputStream和OutputStream,但它允許您隨時隨地進行讀寫操作。
只應用一次正則表達式。 String.replaceFirst(「regex」,「replacementstring」):http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#replaceFirst(java.lang.String,%20java.lang.String)
將文件作爲RandomAccessFile打開。將第一行讀入字符串,然後應用更改,然後再寫回字符串。
爲什麼不寫一個Perl腳本並使用Runtime.exec()調用它。雖然不是純Java解決方案。此外,在深入研究之前,請仔細閱讀此文章http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
僅當第1行的長度不變時 – Cheekysoft 2008-10-14 18:11:12
「該文件可能長達數百萬行」 - 祝您好運,使用正則表達式! LOL – 2008-10-15 00:29:18