我在.jar中读取文件时遇到问题

时间:2016-01-10 20:59:27

标签: java user-interface readfile

我在.jar exutable中读取文件.txt时遇到了一些问题。 我知道我需要使用getResourceAsStream方法,但我无法阅读它。

我有.jar个文件,我在mainclass中有“Baza pytan.txt”文件,所以我这样做:

InputStream ten=getClass().getResourceAsStream("Baza pytan.txt");

if(ten == null){
    throw new FileNotFoundException();
}

Scanner in = new Scanner(ten,"UTF-8");
String linia;
String[] tokens;

任何人都可以帮我解决这个问题吗?

我在GUI程序中使用读取文件。在其他GUI项目中,我使用相同的方法来读取文件,它与ResourceAsStream完美配合,但是在这个GUI中,我真的不知道为什么不这样做。

enter image description here

Quiz.jar \ Programik中的结构:

enter image description here

1 个答案:

答案 0 :(得分:0)

这将在与该类相同的包中查找该文件。即同一目录。

InputStream ten = getClass().getResourceAsStream("Baza pytan.txt");

假设您的课程为com.mycom.pkg.MyClass,该文件必须位于/com/mycom/pkg/

这样每个包都可以有“本地”文件,并且可以在多个JAR中使用相同的resoruce名称而不会发生冲突(前提是它们使用不同的包)

但是,如果文件位于顶层,则需要使用

忽略该类
InputStream ten = getClass().getClassLoader().getResourceAsStream("Baza pytan.txt");

这将查找顶级目录中的文件或类路径中的任何JAR。