Java InputStream无法从JAR中读取文件

时间:2013-03-05 18:33:12

标签: java jar inputstream

我正在尝试从我的可执行文件.jar文件中读取一个文件,但它一直在获取空值。

我有这段代码:

public DanceEventTicketScanner(String txtfile){
    sv = new ScannerView(this);
    findcode = false;
    InputStream is = this.getClass().getResourceAsStream("/resources/copy.csv");
    if (is == null) JOptionPane.showMessageDialog(null, "Resource not located.");
}

在JAR文件中,我(正常情况下)包含所有.class文件的文件夹,并在同一目录中包含一个名为resources的文件夹,其中包含copy.csv文件。

但是此代码无法识别该文件。

有没有人有任何想法?

2 个答案:

答案 0 :(得分:3)

删除第一个斜杠:

InputStream is = this.getClass().getResourceAsStream("resources/copy.csv");

答案 1 :(得分:2)

getClass()。getResourceAsStream(..)将使用相对于类的路径(所以inc。包dirs)。 getClass()。getClassLoader()。getResourceAsStream(..)将使用绝对路径。因此,更改代码并获取类加载器,它将起作用。