在java中编辑文本文件

时间:2014-09-30 07:17:18

标签: java file-io text-files

我想在特定位置的文本文件中添加几个字符串。 我使用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;
 }

1 个答案:

答案 0 :(得分:1)

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

答案是:

关闭bufferedReader以及fileReader ..

就足够了

fr.close();应该在br.close();

之后插入