我想将ressources放在我的JAR文件中,但是当我想使用它时会出现问题。如果我用这段代码显示路径:
JOptionPane.showMessageDialog(null, MyStaticClass.class.getResource("/ressources/") + "file.File" + i, "OK", JOptionPane.INFORMATION_MESSAGE);
File file = new File(MyStaticClass.class.getResource("/ressources/") + "file.File" + i);
messagebox的结果是jar:file:/home/clement/Bureau/Untitled.jar!/ressources/niveau.Niveau1
和exeption
java.io.FileNotFoundException: jar:file:/home/clement/Bureau/Untitled.jar!/ressources/file.File1 (No file or folder of this type)
文件位于src / ressources / file.File1
的src文件夹中答案 0 :(得分:0)
getResourceAsStream()
会返回InputStream
。您的代码基本上尝试查找文件'/ ressources /',它不是文件而是目录,因此getResourceAsStream()
会返回null
。
打印InputStream
没有意义。你能做的就是这样:
InputStream is = MyStaticClass.class.getResourceAsStream("/ressources/" + "file.File1")
然后阅读其内容(例如,使用InputStream
的{{1}}方法,或使用read()
包装并使用它InputStreamReader
。很难给出更多的建议,因为我不知道你想读什么。
更新了更新后的问题代码
read()
返回getResource()
实例,该实例也不适合打印(以及使用+运算符连接)。但是,如果您愿意,可以使用URL
方法将其转换为File
个实例:
getFile()
另请注意,File file = new File(MyStaticClass.class.getResource("/ressources/" + "file.File" + i).getFile());
在完整资源名称上调用,而不仅仅是目录名称。
然后您可以使用该getResource()
实例。
但是如果您只想阅读资源内容,可以执行以下操作(无需获取File
实例):
URL
此示例假定您的文件是文本文件,并且至少有一行。它将该行打印到控制台。