我在.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中,我真的不知道为什么不这样做。
Quiz.jar \ Programik中的结构:
答案 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。