从Jar读取外部文件

时间:2011-07-18 22:12:23

标签: java file-io fileinputstream

我使用下面提到的代码从java类中读取文件(.cer文件)。 java类将捆绑在Jar中,然后包含在EAR中。

FileInputStream inStream = new FileInputStream ("/home/test/foo.cer"); 

我也试过

FileInputStream inStream = new FileInputStream ("home/test/foo.cer"); 

但是他们都抛出了FileNotFoundException。 EAR部署在Unix系统中的Weblogic中。我已经验证了路径和文件名。

任何想法,如果我遗漏了什么?

2 个答案:

答案 0 :(得分:1)

我建议在应用程序服务器的类路径中包含.cer文件的位置,然后使用ClassLoader的getResourceAsStream(String location)方法加载它。

如果您将目录/home/test添加到类路径中,则相应的代码应为:

this.getClass().getClassLoader().getResourceAsStream("foo.cer");

我发现这是在appserver中运行时加载外部资源的一种更可靠的方法,而且它使测试更容易。

答案 1 :(得分:-3)

try {
    BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME_REL_OR_ABSOLUTE));
    reader.readLine();
} catch (IOException e) { 

} catch (FileNotFoundException ex) {

}