如何从jar文件中读取文件?

2022-09-01 09:12:18

我在 JAR 文件中有一个文件。例如,它是。1.txt

如何访问它?我的源代码是:

Double result=0.0;
File file = new File("1.txt")); //how get this file from a jar file
BufferedReader input = new BufferedReader(new FileReader(file));
String line;
while ((line = input.readLine()) != null) {
  if(me==Integer.parseInt(line.split(":")[0])){
    result= parseDouble(line.split(":")[1]);
  }
}
input.close();
return result;

答案 1

如果您的 jar 位于类路径上:

InputStream is = YourClass.class.getResourceAsStream("1.txt");

如果它不在类路径上,则可以通过以下方式访问它:

URL url = new URL("jar:file:/absolute/location/of/yourJar.jar!/1.txt");
InputStream is = url.openStream();

答案 2

您不能使用 File,因为此文件在文件系统上不独立存在。相反,你需要getResourceAsStream(),如下所示:

...
InputStream in = getClass().getResourceAsStream("/1.txt");
BufferedReader input = new BufferedReader(new InputStreamReader(in));
...