gpt4 book ai didi

Java 随机访问文件

转载 作者:行者123 更新时间:2023-12-03 22:53:40 25 4
gpt4 key购买 nike

    public void exportUrlsToFile(String file, String urls) throws IOException {
String[] urlsArray = urls.split("\\s+");// split on one or more white space characters.

// create a fresh file
RandomAccessFile raf = new RandomAccessFile(file, "rw");

for (String line : urlsArray) {
line = line.trim();
if (line.isEmpty()) {// this won't happen!
continue;
}
raf.writeBytes(line);
raf.writeBytes(newline);
}
// close the file handler
raf.close();
}

基本上,我使用这个类来做一些事情。这是在 Tomcat JVM 中运行的应用程序的一部分。我注意到,无论何时调用此方法,它都会创建一个与参数同名的文件,并且在 raf.close() 之后,它仍然存在。如何确保删除临时文件?

最佳答案

一个更好的问题是,为什么您要经历创建文件、向文件写入内容然后删除文件的所有麻烦?!

尽管您不需要随机访问文件 - FileWriter 会更好。

要确保文件被删除,请按照 Eddie 的建议进行操作,并将删除操作放在 finnaly block 中 - 但您还需要确保处理 raf.close() IOException ... 类似于:

} finally {    try    {        raf.close();    }    catch(final IOException ex)    {         // in 14 years of Java programming I still don't know what to do here! ;-)    }    finally    {        File todelete = new File(file);        if (!todelete.delete()) {            // Log a complaint that we couldn't delete the temp file        }    }}

编辑:

您可能还表示在 Tomcat 进程完成后文件仍然存在,您希望它消失。如果是这种情况,请查看 java.io.File.deleteOnExit()。当 Tomcat JVM 存在时,这应该会删除文件。

关于Java 随机访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571874/

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