我正在尝试使用一个本地文件,在其中指定了名为 dao.properties
的数据库连接属性。我正在这样进行:
InputStream fichierProperties = classLoader.getResourceAsStream( "/src/dao/dao.properties" );
但是,当使用此路径时,我收到一个异常,指出调试器无法找到该文件。
以下是我的项目中的一些包:
dao.properties就在dao包下。
请问我该如何解决这个问题?
最佳答案
如果您将文件放入 src 文件夹中,IDE 可能正在打包,当指示编译和构建时,文件将放入捆绑生成的 jar 中。因此,您可以使用方法 GetResourceAsStream
进行访问。
因此,如果您将文件(dao.properties)放在源文件的根文件夹(通常是 src 文件夹)中,只需简单引用 dao.properties
即可引用该资源。
如果将文件放入 src 的子文件夹中,则引用它的正确方法是 subfolder/dao.properties。
第一个 "/"
不是必需的,因为 getResourceAsStream
始终在 classpath
中搜索,默认情况下是源的根目录文件夹,在 jar 里面。 (这里不是在谈论外部文件!)
更新:
假设您将文件名notes.txt放在名为“sub”的文件夹(包)中,这是有效的示例,仅用于如何获取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 添加更多相关信息
关于java - 如何链接本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23871889/