如何在Jar中加载与其加载的类不相关的文件

时间:2014-06-16 20:55:14

标签: java file jar loading

我正在尝试加载jar文件中的文件。我尝试将文件加载到BufferedReader中。例如:

BufferedReader br = new BufferedReader(new FileReader(fileName));

其中fileName是来自Jar文件根目录的字符串:类似这样的内容" resources / text.txt"

我很难找到如何实现这一目标。显然,FileReader无法正常工作,因为它从文件系统中读取。

任何可以帮助我的人?​​

2 个答案:

答案 0 :(得分:2)

使用类加载器获取resource as a stream

BufferedReader br = new BufferedReader(new InputStreamReader(MyClass.class.getClassLoader().getResourceAsStream("/resources/text.txt"), "utf-8");

请注意,您需要为内容指定正确的字符编码。

答案 1 :(得分:1)

如果您尝试访问与正在运行的程序相同的jar中的文件,则应使用

final InputStream inputStream = ClassName.class.getResourceAsStream(fileName);