无法在jar中找到存档文件的正确路径

时间:2016-09-06 14:43:15

标签: java jar

对于一个学校项目,我实现了一个模拟图书馆档案的程序。

我的一个类FileManager.java位于\src\controller\,它读取/写入三个文件,包含我需要的信息;对于读/写我使用包含ObjectInputStream / ObjectOutputStream的FileInputStream / FileOutputStream,这是将模型中的数据写入名为archive.usersarchive.items的文件的代码。

public void writeObjectIntoFile(final String fileName, final Model model) {
    try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(this.path + fileName))) {
            if (fileName.contains("users")) {
                oos.writeObject(model.getUserArchive());
            } else if (fileName.contains("items")) {
                oos.writeObject(model.getItemArchive());
            } 
        }
}

变量this.path是一个用归档文件路径初始化的String,它位于\res\,变量以这种方式初始化:

private String path = System.getProperty("user.dir") + System.getProperty("file.separator") + "res"
        + System.getProperty("file.separator");

启动程序的名为Application.java的方法main的类位于文件夹\src\controller\中。

当我将程序导出到.jar文件时出现问题,因为它不再找到我的文件了,我无法读取文件内容来初始化库存档或保存我用GUI创建的新条目

问题在于路径还是Streams?

0 个答案:

没有答案