我认为这是一个常见的错误,但我找到的线程的错误要么是C#,要么对我的问题没用。
我试图从文本文件中删除一行,并且这样做我创建一个临时文本文件并复制除该行之外的所有内容。关闭读取和写入流后,我收到一条错误消息,说我无法命名(复制)该文件,因为它正在被另一个程序使用。我认为问题可能是关闭流,但是在尝试复制文件之前就完成了,所以要知道问题是什么。到目前为止,我的代码是这样的:
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();
}