gpt4 book ai didi

java - 删除和重命名文件

转载 作者:行者123 更新时间:2023-11-29 05:12:30 24 4
gpt4 key购买 nike

所以我试图从一个文件中删除一行数据,我已经通过打开一个新文件并写入所有与我想删除的数据不匹配的信息成功地完成了。问题是,在我这样做之后,我想删除我的原始文件,然后将新文件重命名为不包括我要删除的信息,与原始文件同名。我已经在代码中添加了执行此操作的代码,但由于某种原因它无法正常工作。

public static void delete() throws IOException
{
File inputFile = new File("Elements.txt");
File tempFile = new File("myTempFile.txt");

BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));

String element = JOptionPane.showInputDialog(null, "Enter the name of the Element you wish to delete.", "Remove an Element.", JOptionPane.INFORMATION_MESSAGE);;
String currentLine;

while((currentLine = reader.readLine()) != null) {
String trimmedLine = currentLine.trim();
if(trimmedLine.startsWith(element)) continue;
writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader.close();

inputFile.delete();
tempFile.renameTo(inputFile);

JOptionPane.showMessageDialog(null, "Data has been removed from the file: Elements.txt");
}

正如您在底部附近看到的,我有这些行:

inputFile.delete();

tempFile.renameTo(inputFile);

这些行是为了删除我的原始文件 (inputFile),然后将我的新文件 (tempFile) 重命名为原始文件的文件名。然而,在运行代码之后,我只是得到一个名为“myTempFile.txt”的文件,它成功删除了我想要的数据行,但我的原始文件仍然存在并且没有被删除,新文件也没有重命名为原始文件。

知道为什么会这样吗?

最佳答案

Use the java.nio.file API .这是 2015 年。

final Path src = Paths.get("Elements.txt").toAbsolutePath();
final Path tmp = src.resolveSibling("Elements.txt.new");

try (
final BufferedReader reader = Files.newBufferedReader(src, StandardCharsets.UTF_8);
final BufferedWriter writer = Files.newBufferedWriter(tmp, StandardCharsets.UTF_8,
StandardOpenOption.CREATE_NEW);
) {
// yadda yadda
}

Files.move(tmp, src, StandardCopyOption.REPLACE_EXISTING);

File is unreliable .一直都是。

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

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