FileNotFoundException - 进程无法访问该文件

Cod*_*ggo 0 java file-io filenotfoundexception

我在学校有一个网络驱动器,我有能力正常读取和写入,但是当我使用java来获取现有的文本文件并尝试写入它时,我得到了以下异常:

java.io.FileNotFoundException: p:\CompSci_CheckIn_Name.txt (The process cannot access the file because it is being used by another process)
Run Code Online (Sandbox Code Playgroud)

我可以读得很好,但是当我尝试写它时,它会抛出一个例外.我可以写入桌面并从桌面读取所有内容,但是当我尝试使用网络驱动器时,它会放弃.我怎么能解决这个问题?

file = new File(directories[i], "CompSci_CheckIn_Name.txt");
readName = new BufferedReader(new FileReader(file));
userName = readName.readLine();
passed = true;
Run Code Online (Sandbox Code Playgroud)

写作

write = new PrintWriter(file);
write.println(newUser);
write.flush();
userName = newUser;
write.close();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过BufferedWriter没有运气,同样的结果.

小智 5

你应该close() BufferedReaderFileReader使用它们之后.

使用try/finally块并Reader在finally块中关闭s.

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();
}
Run Code Online (Sandbox Code Playgroud)