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

springboot将文件夹作为资源或文件加载到src/main/resources中

潘泰
2023-03-14

我想问一下,如何在SpringBoot中将文件夹作为资源或文件加载。假设我有src/main/resources/testfolder,我想做如下事情:

File f = ResourceUtils.getFile("classpath:testfolder");

^但这将失败,因为ResourceUtils只能加载实际文件(.txt、.csv等),不是文件夹。。提前非常感谢。。

编辑:

原因是我需要得到文件夹的绝对路径...

File f = ResouceUtils.getFile("classpath:testfolder");
String folderpath = f.getAbsolutePath();

folderpath应该是“/workspace/intellij/ProjectName/src/main/resource/testfolder”;

谢谢

共有2个答案

厉高逸
2023-03-14

如果你在资源文件夹下有任何文件夹(例如:config),你应该试试下面我提到的

File file = ResourceUtils.getFile("classpath:config/test.txt")

读取文件内容

String content = new String(Files.readAllBytes(file.toPath()));
System.out.println(content);
臧友樵
2023-03-14

由于您希望使用临时目录进行测试,而不是试图使用Spring类来获取路径并将测试固定在其中,所以请使用JUnit中的TemporaryFolder规则。

@RunWith(SpringRunner.class)
public class YourTest {

    @Rule
    private TemporaryFolder tempFolder = new TemporaryFolder();

    @Test
    public void yourTestMethod() {
        String folder = tempFolder.getRoot();
        when(yourMock.getOutputFolder()).thenReturn(folder);
        // do your thing
        // use tempFolder object to check files/read files etc.
    }

}
 类似资料:
  • Spring靴-1.4.1;IDE-IntelliJ 2016.3。EAP 我试图加载资源如下; 和 当我从IDE运行应用程序时,这两种方法都可以正常工作,但当我尝试将应用程序构建为war并将其部署到Tomcat上时,这两种方法都不起作用。 有人能帮我解决这个问题吗? 谢谢

  • 我正在尝试访问src/main/Resources/XYZ/view文件夹中的xsd,其中XYZ/view文件夹是由我创建的,文件夹具有我需要进行xml验证的abc.xsd。 当我每次尝试访问xsd时,结果为null, 我试过了, 1) 2) 以及我为获取资源或类加载器等而进行的更多跟踪。 最后我得到了xsd, 文件文件 = 新文件(新类路径资源(“/src/main/resources/XYZ/

  • 有没有办法说服Gradle接受文件夹中的资源文件(如XML文件)? 这将是伟大的,因为我需要把我的JavaFXXML文件放在那里。。。

  • 我有一个SpringWeb应用程序,它是作为maven工件a.war创建的。它有一个maven依赖项和一个工件B.jar。工件B的src/main/resources有一个文件测试。txt。我想读一下测试文件。来自神器A.war的txt。当我引爆B.jar时,我看到了测试结果。jar的根位于txt中。在A中,我尝试使用文件f=new ClassPathResource(“test.txt”)读取该

  • 我正在使用gradle构建uber jar,我使用的插件https://github.com/johnrengelman/shadow 我在文件夹中有一个json文件,我在下面的代码中使用它 当我运行uber Jar时,面临以下问题 我的build.gradle是这样的

  • 问题内容: 我想知道我怎么可以将文件加载从文件夹到我的close方法。到目前为止的代码: 启动时控制台错误输出: 问题答案: 如果您想从jar文件中加载文件(例如,从classpath加载),请参阅此答案以获取有关如何获取的更多选项。在下面的代码中,我没有进行任何异常处理,并删除了您的相关代码。 编辑: 似乎您在文件夹结构上做错了什么,或者您使用了错误的包/文件名。只是要清楚。目前,您似乎在一个程