如果path包含文件夹,则runnable jar中的FileOutputStream抛出FileNotFoundException

时间:2016-05-03 22:16:37

标签: java jar runnable filenotfoundexception fileoutputstream

当使用FileOutputStream将对象输出到可运行jar内的文件夹时,您将获得FileNotFoundException

将抛出FileNotFoundException的示例代码(无论目录或文件是否存在):

        ObjectOutputStream wf = new ObjectOutputStream(new FileOutputStream("res/followers.txt"));
        wf.writeObject(crntFollowers);
        wf.flush();
        wf.close();
        writeSettingFollowers(crntFollowers.size());

但是,如果在不向路径添加“文件夹”的情况下使用相同的代码,则不会获得FileNotFoundException,但根本不会创建文件

不会抛出FileNotFoundException的示例代码:

        ObjectOutputStream wf = new ObjectOutputStream(new FileOutputStream("followers.txt"));
        wf.writeObject(crntFollowers);
        wf.flush();
        wf.close();
        writeSettingFollowers(crntFollowers.size());

两个代码片段在Eclipse中编译时都有效,但不是作为一个可运行的jar,我的猜测是由于路径不同而我不知道如何修复它。

那么如何在不获取FileNotFoundException并且文件也被创建的情况下将一个Object覆盖到一个可运行的jar文件夹中的文件夹?

1 个答案:

答案 0 :(得分:0)

你错了。

  1. 您无法使用FileOutputStream或其他任何形式或形式在正在运行的JAR中创建文件。
  2. 如果没有异常,则会创建 文件,但是在当前工作目录中,而不是在JAR文件中。