如何传递Spring Boot webapp的srcmainresource文件夹中的文件的相对文件路径?

问题描述 投票:0回答:1

我试图访问资源文件夹中的一个特定文件,抓取该uri,将其转换为一个toString,然后使用该文件通过ftp将其发送到服务器。下面是我目前使用的代码,但我一直得到一个FileNotFoundException。如果有人能告诉我我做错了什么,或者提供一个替代的方法,那将是非常棒的。

enter image description here

@Value("classpath:submitTest.txt")
private Resource res;

private String submitJcl(FTPClient ftp, String serverName) throws IOException {

    FileInputStream inputStream = new FileInputStream(res.getURI().toString());
    ftp.storeFile(serverName, inputStream);  

    return result;
}

错误。

2020-05-13 09:04:25.353 ERROR 11472 --- [nio-8443-exec-3] c.cat.pis.service.CnlLetterServiceImpl   : java.io.FileNotFoundException: file:\C:\Users\mallid2\eclipse-new-PIS\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Product%20Information%20System%20(PIS)\WEB-INF\classes\submitTest.txt (The filename, directory name, or volume label syntax is incorrect)
java spring-boot file ftp
1个回答
2
投票

你可以使用getClass().getClassLoader().getResource()来获取Resource文件夹中的文件,例如

File file = new File(getClass().getClassLoader().getResource("submitTest.txt").getFile();

或者如果你需要输入流,那么你可以使用。

InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("submitTest.txt");

希望这能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.