gpt4 book ai didi

java - 删除并重命名文件java

转载 作者:行者123 更新时间:2023-12-01 17:11:34 25 4
gpt4 key购买 nike

我正在尝试删除并重命名文件,但是delete() 和rename() 函数不起作用。我似乎无法在代码中找到错误,因为它应该按逻辑正常运行(我认为)。谁能告诉我为什么它不能删除填充。除了删除旧 txt 并将 temp.txt 重命名为旧文件之外,此代码有效。

public Boolean deleteItem(String item){
try{
// creating and opening file
File f = new File("temp.txt");
f.delete(); // to delete existing data inside file;
File old = new File(file);
FileWriter writer = new FileWriter(new File("temp.txt"), true);

FileReader fr = new FileReader(old);
BufferedReader reader = new BufferedReader(fr);
String s;

// creating temporary item object
String[] strArr;

//searching for data inside the file
while ((s = reader.readLine()) != null){
strArr = s.split("\\'");
if (!strArr[0].equals(item)){
writer.append(s + System.getProperty("line.separator"));
}
}

//rename old file to file.txt

old.delete();
boolean successful = f.renameTo(new File(file));
writer.flush();
writer.close();
fr.close();
reader.close();

return successful;
}
catch(Exception e){ e.printStackTrace();}
return false;
}

最佳答案

逻辑似乎有点困惑。这是我认为的样子。

您删除了 file.txt
您创建一个新的 file.txt 并将"file"复制到其中
您删除"file"
您将 file.txt 重命名为“file”
您关闭输入和输出文件

我的猜测是您的操作系统(未指定)正在阻止删除和重命名打开的文件。将结束语移至删除/重命名之前。并检查这些函数的返回结果。

另外:作为可读性的一个小改进,您不需要继续使用相同的 xxx 调用“new File(xxx)”。文件只是文件名的表示。做一次。并且“File tempFile = new File("file.txt")”比调用它“f”更容易理解。

关于java - 删除并重命名文件java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61425789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com