我尝试使用本地文件,其中我已经指定了名为dao.properties
的数据库连接属性。而且我正在这样做:
InputStream fichierProperties = classLoader.getResourceAsStream( "/src/dao/dao.properties" );
但是,在使用此路径时,我收到一条异常,指出调试器无法找到该文件。
以下是我项目中的一些软件包:
dao.properties就在dao包之下。
我该如何解决这个问题?
答案 0 :(得分:2)
如果将文件放在src文件夹中,IDE可能会在指示编译和构建时将文件打包到捆绑生成的jar中。因此,您可以使用GetResourceAsStream
方法进行操作。
因此,如果将文件(dao.properties)放在源文件的根文件夹(通常是src文件夹)中,只需简单引用dao.properties
即可引用该资源。
如果您将文件放在src的子文件夹中,引用它的正确方法是subfolder / dao.properties。
第一个"/"
不是必需的,因为getResourceAsStream
总是在classpath
中搜索,默认情况下是jar文件夹中来源文件夹的根目录。 (哪里不谈论外部文件!)
假设您将文件名notes.txt放在名为'theub'的文件夹(包)中,这是有效的示例,仅适用于如何获取jar中的捆绑文件。
public class Main {
public static void main (String[] args) throws IOException {
InputStream is = Main.class.getResourceAsStream("sub/notes.txt");
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
while (s != null) {
System.out.println (s);
s = br.readLine();
}
is.close();
}
}
我通过参考此post
添加了有关此内容的更多信息仍然不知道为什么投票。 对于匿名downvoter,请考虑添加有用或更丰富的信息。