在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块。。问题出现了。。