我在学校有一个网络驱动器,我有能力正常读取和写入,但是当我使用java获取现有的文本文件并尝试写入时,我得到了这个例外:
java.io.FileNotFoundException: p:\CompSci_CheckIn_Name.txt (The process cannot access the file because it is being used by another process)
我可以读得很好,但是当我尝试写它时,它会抛出异常。我可以写入桌面并从桌面读取所有内容,但是当我尝试使用网络驱动器时,它会放弃。我怎么能解决这个问题?
file = new File(directories[i], "CompSci_CheckIn_Name.txt");
readName = new BufferedReader(new FileReader(file));
userName = readName.readLine();
passed = true;
write = new PrintWriter(file);
write.println(newUser);
write.flush();
userName = newUser;
write.close();
我已经尝试了BufferedWriter
没有运气,结果相同。
答案 0 :(得分:5)
使用后,您应该close()
BufferedReader
和FileReader
。
使用try / finally块并关闭finally块中的Reader
。
FileReader fr = null;
BufferdReader br = null;
try {
fr = new FileRader(file);
br = new BufferedReader(fr);
// do something..
} finally {
if (br != null) br.close();
if (fr != null) fr.close();
}