【问题标题】:Java getDesktop() open commandJava getDesktop() 打开命令
【发布时间】:2010-07-14 18:15:19
【问题描述】:

我正在尝试使用 Java 的 Desktop / getDesktop() / open() 调用通过系统的默认编辑器打开一个文本(简单的 ASCII)文件。我正在使用 FileWriter / PrintWriter 写入文件,刷新它,关闭它,但我得到了一个异常抛出。

  1. 我在 desktop.open(savefile) 中使用与在 FileWriter fw = new FileWriter(savefile) 通话中相同的 File 对象。

  2. 我可以毫无问题地打开任何其他类型的文件,包括其他文本文件。

  3. 1234563 '没有使用正确的标题或元信息创建,使 Desktop 知道如何处理它。

任何帮助或经验将不胜感激。简单处理文本时是否有“官方”文件编写器可供使用?

【问题讨论】:

    标签: java file desktop


    【解决方案1】:

    抱歉,这个基本的启动示例无法在此处重现您的问题:

    File file = new File("/test.txt");
    FileWriter writer = null;
    try {
        writer = new FileWriter(file);
        writer.write("test");
    } finally {
        if (writer != null) writer.close();
    }
    Desktop.getDesktop().open(file);
    

    您的问题出在其他地方。也许您关闭了错误的Writer 句柄(您应该关闭“最外层”编写器,例如,如果您将FileWriter 包裹在BufferedWriter 中,则应该关闭BufferedWriter)或者为时已晚(例如,在try 中调用Desktop#open(),而您正在关闭finally)?

    【讨论】:

    • 我所做的一切都是正确的,也许这是一个依赖于系统的事情。我正在 Linux 上开发,我会在 windows 机器上尝试一下,看看会发生什么。
    • 另一个更新 - 它实际上在调试模式下完美运行,Netbeans 中有断点,但是当我真正运行它时它失败了......只是认为它可能值得注意。
    猜你喜欢
    • 2018-07-23
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多