0
我知道我的问题似乎已经回答过,但我无法找到我的案例的答案。如何从资源中获取文件
我在做什么,是从资源中获取文件类型,所以当它打包时,它可以被访问。我找到的答案是试图读取该文件,但我真正需要的是构建一个File对象,因为我有一个期待该对象的第三方库。
这里是我试过的代码:
String xslFilePath = new Test().getClass().getResource("/com/test/decision_template.xsl").getPath();
System.out.println(xslFilePath);
File xsltfile = new File(xslFilePath);
System.out.println(xsltfile.getAbsolutePath()+", exist:"+xsltfile.exists());
我得到了这样的结果:
C:\>java -jar test.jar
file:/C:/test.jar!/com/test/decision_template.xsl
C:\\file:\C:\test.jar!\com\test\decision_template.xsl, exist:false
java.io.FileNotFoundException: file:\C:\test.jar!\com\test\decision_template.xsl
(Syntaxe du nom de fichier, de rÚpertoire ou de volume incorrecte)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at com.test.Test.main(Test.java:30)
我需要一种方法来获取文件,因此在.exists()返回true。
这个问题已经有很多答案给你:http://stackoverflow.com/questions/403256/how-do-i-read-a-resource-file-from-a-java-jar-file。最合理的做法是不需要文件,但通常只需要一个'InputStream'。 – 2013-02-27 19:09:55