当前位置: 首页 > 知识库问答 >
问题:

从子项目Spring中的资源文件夹中读取txt文件

罗鸿畴
2023-03-14

我正在尝试从子项目中读取文件示例-dfx-sbi

文件位于src/main/resources文件夹内

static final ClassLoader loader = DummyClass.class.getClassLoader();

public void getData(String ip)throws IOException {

    String filepath = loader.getResource("/wm/device.txt").toString();
    System.out.println(filepath);
    File file = new File(filepath);

    FileReader fileReader = new FileReader(file);  // exception

    ...
jar:file:/home/user/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sample-dfx-web/WEB-INF/lib/sample-dfx-sbi-0.0.1-SNAPSHOT.jar!/wm/device.txt

java.io.FileNotFoundException: jar:file:/home/user/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sample-dfx-web/WEB-INF/lib/sample-dfx-sbi-0.0.1-SNAPSHOT.jar!/wm/device.txt (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)

那为什么文件没有加载呢?

共有1个答案

山疏珂
2023-03-14

jar中绑定资源时,将其作为流读取。

public String loadResource(String filelocation) {
    if (filelocation != null && !filelocation.trim().isEmpty()) {
        try (
            InputStream inputStream = getClass().getResourceAsStream(filelocation);
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));) {

            String fileLine = "";
            StringBuffer stringBuffer = new StringBuffer();

            while((fileLine = bufferedReader.readLine())!= null){
                stringBuffer.append(fileLine);
            }
            return stringBuffer.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return null;
}
 类似资料:
  • 如何从资源文件夹的子文件夹中读取文件。 我在资源文件夹中有一些json文件,例如: 现在我想在我的课堂上读到这个 这是我正在尝试的,但是失败了。 不起作用,那么我正在尝试: 这两样东西都不工作。

  • 问题内容: 我正在使用Spring Boot和。我正在尝试从文件夹读取一个文件。我尝试了几种不同的方法,但无法正常工作。这是我的代码。 这是文件的位置。 在这里,我可以看到文件夹中的文件。 但是,当我运行代码时,出现以下错误。 我在代码中做错了什么? 问题答案: 在花费大量时间尝试解决此问题之后,终于找到了可行的解决方案。该解决方案利用了Spring的ResourceUtils。也应该适用于jso

  • 如何使用URI从资源文件夹的子文件夹中读取文件 资源文件夹中有一些json文件,如: 现在我想在我的课堂上读这个 这是我正在尝试的。 我的东西工作正常,但我遇到的问题是我不想使用< code>toURI,因为它会失败。

  • 我有一个名为的项目,它有以下结构: 所以这两个文件的路径是: 我想读测试文件。TestDataProvider中的json。JAVA 我曾经用过 我看到从URL res=getClass(). getClassLoader(). getResources("testfile.json")返回; 有人能帮我吗?

  • 我有一个项目来解析一个大文件中的一些信息。 结构如下: 当我根据自己的想法运行应用程序时,我可以通过以下方式读取文件: 然后,如果我运行: 一切顺利。 即使在生成GraalNative jar并从本机generate jar运行应用程序时: 这一切都很好。 但是,当我运行命令来构建和运行docker时,我得到了我的错误: 有人能帮我吗?如何读取Docker容器上src/main/Resources

  • 问题内容: 我正在尝试在资源文件夹中写入.txt文件,但是它什么也没写。我可以通过执行以下操作读取相同的.txt文件: 但是当涉及到写作时,我尝试做: 关于如何在该文件夹中写任何建议? 问题答案: 假设您将资源打包为jar,则无法将任何内容写入资源。Jar只。您无法更新。您可以提取和编辑内容。 您可以尝试使用偏好设置作为替代