我遇到的情况是,我有一个 txt 文件和一个 java 文件捆绑在 jar 内。我正在从 java 读取 txt 文件,该文件仅捆绑在 jar 内。
在读取文件时,在 Java 中获取 FileNotFoundException
,并且 txt 文件位于 jar 内捆绑的同一文件夹中。
我从测试类示例代码中调用此 Java 方法。
public static void loadtxtfile(){
try {
InputStream in =
Utils.class.getClassLoader().getResourceAsStream("sample.txt");
File f = new File(JetUtils.class.getClassLoader().getResource("dd.js").getFile());
//OJetBase.class.getClassLoader().getResourceAsStream("logging.properties");
BufferedReader input = new BufferedReader(new FileReader(js_filepath));
StringBuffer buffer = new StringBuffer();
while ((text = input.readLine()) != null)
buffer.append(text + "\n");
java_script = buffer.toString();
}
测试调用 - Utils.loadtxtfile()
;
我尝试了所有选项。
最佳答案
您无法从 jar 文件中将资源作为 java.io.File 对象读取,因为它们不存在于文件系统中。只需使用 java.lang.Classloader.getResourceAsStream(String name) :
Reader inputStreamReader = new InputStreamReader(
JetUtils.class.getClassLoader().getResourceAsStream("dd.js"));
BufferedReader jsReader = new BufferedReader(inputStreamReader);
StringBuilder javascript = new StringBuilder();
String input;
while ((input = jsReader.readln()) != null) {
javascript.append(input);
}
关于java - java读取jar内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542080/