无法使用URL for File

时间:2015-11-05 17:35:17

标签: java file url resources

我的旧版本有效,但如果我尝试导出到可运行的Jar文件,它就不会加载txt文件。

public String jarLocation = getClass().getProtectionDomain()
        .getCodeSource().getLocation().getPath();
public File txt = new File(jarLocation + "/images/gewinne.txt");

之后我尝试使用获取资源,但文件无法加载URL部分:/我迷路了

public URL urlGewinne = Kalender.class.getResource("/images/gewinne.txt");
public File txt = new File(urlGewinne); // ERROR

public void txtLesen() throws IOException {
    try {
        BufferedReader br = new BufferedReader(new FileReader(txt));
        String line = null;
        while ((line = br.readLine()) != null) {
            gewinne.add(line);
        }

        br.close();
    } catch (FileNotFoundException ex) {

    }
}

1 个答案:

答案 0 :(得分:1)

原因很明显:资源不是文件。 从jar文件中获取的资源是这个jar的一部分,jar的条目,无论如何,但不是文件系统中的单独文件。

然而,好消息是你根本不需要文件。如果成功获得资源,您可以直接获取其流并从此流中读取:

更改行

URL urlGewinne = Kalender.class.getResource("/images/gewinne.txt");

InputStream urlGewinne = Kalender.class.getResourceAsStream("/images/gewinne.txt");

和这一行:

BufferedReader br = new BufferedReader(new FileReader(txt));

BufferedReader br = new BufferedReader(new InputStreamReader(txt));

其余代码应该有效。