2014-09-30 87 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()后面插入;