我正在尋找一種方法來替換文件中的字符串,而無需將整個文件讀入內存。通常我會用一個讀者與作者,也就是類似如下:替換文件中的字符串
public static void replace(String oldstring, String newstring, File in, File out)
throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(in));
PrintWriter writer = new PrintWriter(new FileWriter(out));
String line = null;
while ((line = reader.readLine()) != null)
writer.println(line.replaceAll(oldstring,newstring));
// I'm aware of the potential for resource leaks here. Proper resource
// handling has been omitted in the interest of brevity
reader.close();
writer.close();
}
然而,我想要做的就地更換,並且不認爲我可以在同一個開放的Reader和Writer文件併發。另外,我使用Java 1.4,所以dont't訪問NIO,掃描儀等
謝謝, 唐
只是FYI,你知道'replaceAll'是基於正則表達式的,對吧?如果你只是想直接進行字符串替換(如你的形式參數名稱所示),你可以使用replace(CharSequence,CharSequence)方法。 – polygenelubricants 2010-06-30 08:40:26
如何寫入臨時文件然後替換原文件? – InsertNickHere 2010-06-30 08:40:45