“Java文件”;无法访问文件,因为另一个程序正在使用它;
我相信这是一个常见的错误,但我发现的线程的迷雾要么对C#有用,要么对我的问题没用 我试图从文本文件中删除一行,为此我创建了一个临时文本文件,并复制了除该行以外的所有内容。关闭读写流后,我收到一个错误,说我无法命名(复制)文件,因为它正在被另一个程序使用。我原以为问题可能是流的关闭,但它是在试图复制文件之前完成的,所以我不知道问题是什么。到目前为止,我的代码如下:“Java文件”;无法访问文件,因为另一个程序正在使用它;,java,swing,file-io,Java,Swing,File Io,我相信这是一个常见的错误,但我发现的线程的迷雾要么对C#有用,要么对我的问题没用 我试图从文本文件中删除一行,为此我创建了一个临时文本文件,并复制了除该行以外的所有内容。关闭读写流后,我收到一个错误,说我无法命名(复制)文件,因为它正在被另一个程序使用。我原以为问题可能是流的关闭,但它是在试图复制文件之前完成的,所以我不知道问题是什么。到目前为止,我的代码如下: private void removeMailBtnActionPerformed(java.awt.event.ActionEve
private void removeMailBtnActionPerformed(java.awt.event.ActionEvent evt) throws IOException{
String origPath = "emails/"+radioSelected(buttons).toLowerCase()+".txt";
String cpyPath = "emails/new"+radioSelected(buttons).toLowerCase()+".txt";
Path originalPath = Paths.get(origPath);
Path copyPath = Paths.get(cpyPath);
String carrier = null;
BufferedReader copier = new BufferedReader(new InputStreamReader(new FileInputStream(originalPath.toString()), "ISO-8859-1"));
BufferedWriter paster = new BufferedWriter(new FileWriter(copyPath.toString()));
String compare = comboBoxMails.getSelectedItem().toString();
while((carrier = copier.readLine()) != null)
{
if(!carrier.equals(compare))
{
paster.write(carrier);
paster.newLine();
}
}
copier.close();
paster.close();
//Files.delete(originalPath);
Files.move(copyPath, originalPath, REPLACE_EXISTING);
Files.delete(originalPath);
test.sucessHandler();
}
你是说这个方法总是失败,因为你引用的错误,不管选择哪种输入文件?你是说任何其他程序都无法打开目标文件?@JohnBollinger已经尝试重新启动电脑并立即运行,stull无法工作。@JohnBollinger还尝试了不同的文件,得到了相同的结果