在java中编辑文本文件

在java中编辑文本文件,java,file-io,text-files,Java,File Io,Text Files,我想在特定位置的文本文件中添加几个字符串。 我使用了BufferedReader来读取文本文件。然后,我在特定位置添加了字符串,并使用BufferedWriter将修改后的文本写入新的临时文件 然后我删除了旧文件,并将临时文件重命名为旧文件名。 这有时有效,有时无效。delete()函数有时不删除文件。我已经关闭了所有的BufferedWriter,但问题有时仍然会发生 代码: public boolean cart(String uname, String item) throws IOExc

我想在特定位置的文本文件中添加几个字符串。 我使用了
BufferedReader
来读取文本文件。然后,我在特定位置添加了字符串,并使用
BufferedWriter
将修改后的文本写入新的临时文件

然后我删除了旧文件,并将临时文件重命名为旧文件名。 这有时有效,有时无效。
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;
 }

我花了整整一天的时间寻找,自己找到了答案

答案是:

关闭bufferedReader和fileReader就足够了


fr.close();应在br.close()之后插入

显示您的代码,否则调试将花费一千年!你能分享一下你到目前为止都尝试了什么吗。。我现在已经添加了代码..将删除代码放入finally块后,将删除代码与结束语句一起放入finally块。。问题出现了。。