这是我的目录结构
XYZProject
我正在研究netbeans 现在我有一个名为ABC.txt的文件 我想把它装在jar文件中 现在我做了以下操作:在源包下创建一个名为Resources的新文件夹,并将文件ABC.txt放入其中。
XYZProject
-- src
|
-- Resources
|
-- ABC.txt
现在我想独立于文件位置访问此文件。所以我按照一些教程做了这个,
URL url = XYZProject.class.getClassLoader().getResource("Resources/ABC.txt");
String urlStr = urlStr.getFile().replaceAll("%20", " ");
System.out.println(urlStr);
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(urlStr)); .....
} catch (FileNotFoundException e) {...}
现在,当我通过netbeans运行代码,即F6和tada WORKS !!!
但是当试图运行jar时,它找不到文件。它抛出FileNotFoundException
如何通过netbeans和java -jar访问运行它的jar中的文本文件?
此外,我不知道为什么我的网址中有%20而不是空格。
输出运行VIA NB
/D:/.../.../.../.../XYZProject/build/classes/Resources/ABC.txt
输出正在运行的VIA java -jar
file:/D:/.../.../.../.../XYZProject/dist/XYZProject.jar!/Resources/ABC.txt
答案 0 :(得分:1)
Jar中的资源不是File
。必须通过URL
或InputStream
访问它。
我可能会使用URL
- > InputStream
- > InputStreamReader
- > BufferedReader
(来自记忆,未经测试)。