Java读取jar包中的资源可以通过 InputStream inputStream = App.class.getResourceAsStream("/test.txt")。对 Class.getResourceAsStream() 方法来说,不加”/”表示从当前类路径下查找,加”/”表示从classpath的根路径下查找。
另外,也可以使用ClassLoader.getResourceAsStream() 方法,从classpath的根路径下查找,即无论要查找的资源前面是否带”/”都会从classpath的根路径下查找。
例子如下:
String line = null;
BufferedReader bufferReader = null;
try {
InputStream inputStream = App.class.getResourceAsStream("/test.txt");
bufferReader = new BufferedReader(new InputStreamReader(inputStream));
while((line = bufferReader.readLine()) != null) {
System.out.println(line);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
bufferReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}