2014-09-30 88 views
1

我想在特定位置的文本文件中添加幾個字符串。 我已使用BufferedReader來讀取文本文件。然後我在特定位置添加了字符串,並使用BufferedWriter將修改後的文本寫入了一個新的臨時文件。在java中編輯文本文件

然後我刪除舊文件並將臨時文件重命名爲舊文件名。 此功能有時並且有時無法使用。 delete()函數有時不會刪除該文件。我已經關閉了所有BufferedWriter的,但有時候問題仍然存在。

代碼:

public boolean cart(String uname, String item) throws IOException { 
    File file = new File("C:\\$$$$.tmp"); 
    if (!file.exists()) { 
     file.createNewFile(); 
    } 
    FileWriter fw = new FileWriter(file.getAbsoluteFile(), true); 
    BufferedWriter bw = new BufferedWriter(fw); 
    File fileop = new File("C:\\value.text"); 
    FileReader fr = new FileReader(fileop.getAbsoluteFile()); 
    BufferedReader br = new BufferedReader(fr); 
    String line; 
    while((line = br.readLine()) != null) { 
     String val[] = line.split(","); 
     if (val[0].equals(uname)) { 
      String linenew = line + item + "&"; 
      bw.append(linenew); 
      bw.newLine(); 
      bw.flush(); 
     } else { 
      bw.append(line); 
      bw.newLine(); 
      bw.flush(); 
     } 
    } 
    br.close(); 
    bw.close(); 
    fileop.delete(); 
    file.renameTo(fileop); 
    return true; 
} 
+3

顯示你的代碼,否則調試將需要一千年! – blackSmith 2014-09-30 07:19:26

+0

你可以分享你到目前爲止嘗試過的嗎? – santhosh 2014-09-30 07:19:32

+0

對不起..我現在已經添加了代碼.. – 2014-09-30 07:41:53

回答

1

我找到了答案,我自己花搜索的一整天之後..

答案是:

這足以關閉BufferedReader中也fileReader ..

fr.close();應該在br.close()後面插入;