java - 如何链接本地文件

标签 java

我正在尝试使用一个本地文件,在其中指定了名为 dao.properties 的数据库连接属性。我正在这样进行:

InputStream fichierProperties = classLoader.getResourceAsStream( "/src/dao/dao.properties" );

但是,当使用此路径时,我收到一个异常,指出调试器无法找到该文件。

以下是我的项目中的一些包:

enter image description here

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/

相关文章:

java - 安装 cassandra 时访问被拒绝

java - 单击通知时将应用程序置于最前面

java - 我可以在不使用 Apache 和 shibd 的情况下将 Shibboleth SSO 集成到我的 Java Webapp 中吗?

java - 检查特定对象属性值时的 Mockito

java - 如何从用户接受整数并将其存储在java中的int数组

java nio NoFilepatternException如何处理文件路径中的空格

java - 将字体大小设置为 0 会导致 CGAffineTransform Invert : singular matrix error

java - 这是一些天才的东西还是简单的糟糕代码?

java - 使用数组和列表的正确循环构造

java - 在java中不使用任何额外内存的情况下查找字符串中重复项的最快方法?