【问题标题】:open temp file in java在java中打开临时文件
【发布时间】:2015-02-12 22:04:45
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java io


    【解决方案1】:

    由以下人创建的文件:

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

    不会被删除,见javadoc,你要打电话

    temp.deleteOnExit();
    

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

    【讨论】:

    • 点击按钮和 temp.deleteOnExit 后如何打开文件,当我关闭文件或关闭 myrunning 应用程序时它会被删除吗?
    • 我认为他只是想在完成文件后删除文件,而不是在应用程序退出时删除它。
    • 所以你想 1- 将数据写入某个文件并关闭它。 2-后者打开此文件并在窗口中显示数据。 3- 有人在窗口中查看数据后删除此文件...我明白了吗?
    【解决方案2】:

    怎么样:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        您可能可以通过 google 找到很多示例。一般来说,匿名内部类代码应该很短,只是将事件和上下文转换为对外部类有意义的操作。

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

        就像在您的代码中那样,仅写入文件是没有意义的。您可能想在关闭读取流而不是写入流后删除文件。如果可能的话,避免使用临时文件并不是一个坏主意。

        【讨论】:

        • 但是如何打开文件?单击按钮(操作类似于双击文本文件的敌人示例)我如何通过程序执行此操作?
        • 啊,如何让点击按钮执行一个动作?
        猜你喜欢
        • 2011-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-08
        • 2017-12-03
        相关资源
        最近更新 更多