在java中打开临时文件

时间:2009-05-18 09:11:37

标签: java io

我正在将字符串写入临时文件(temp.txt)并且我希望在我关闭该文件时(在打开该文件后)我应该删除的awt窗口按钮后打开该文件,我该怎么办?这样做?

这是我用来在Java中创建临时文件的代码:

File temp = File.createTempFile("temp",".txt");

FileWriter fileoutput = new FileWriter(temp);
Bufferedwriter buffout = new BufferedWriter(fileoutput);

4 个答案:

答案 0 :(得分:19)

由以下人员创建的文件:

File temp = File.createTempFile("temp",".txt");

不会被删除,请参阅javadoc,您必须致电

temp.deleteOnExit();

所以JVM会在退出时删除文件......

答案 1 :(得分:4)

如下:

if (!temp.delete())
{
    // wasn't deleted for some reason, delete on exit instead
    temp.deleteOnExit();
}

答案 2 :(得分:1)

可能对您有所帮助的一些链接:

答案 3 :(得分:0)

要在单击按钮时执行操作,您将需要以下代码:

    button.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent event) {
            fileOperation();
        }
    }
...
private void fileOperation() {
    ... do stuff with file ...
}

你可以在谷歌找到很多例子。通常,匿名内部类代码应该简短,只需将事件和上下文转换为对外部类有意义的操作。

目前,您需要在关闭文件后使用File.delete手动删除该文件。如果你真的想要,你可以扩展,比如,RandomAccessFile并覆盖close以在结束后删除。我认为关闭时删除被认为是在JDK7上打开文件的一种模式(不知道它是否存在)。

只需在代码中写入文件就没有意义。您可能希望在关闭读取流而不是写入流之后删除该文件。如果可能的话,避免临时文件并不是一个坏主意。