欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用相对路径读取文件失败时的解决办法

程序员文章站 2022-03-03 09:04:23
...

开发时本地使用绝对路径没啥问题,但部署上线时需要修改路径,所以把文件放在resources下,使用相对路径读取会更简单

File file = new File("test.xls");

但是往往这时候会出现找不到文件的尴尬情况
我的解决办法是使用下面这种读取方法

Resource resource = new ClassPathResource("test.xls");
FileInputStream excelFile = new FileInputStream(resource.getFile());

这样一般就能读取到文件了,但是我又遇到了一个尴尬的问题,读取出来的excel报错
Your file appears not to be a valid OLE2 document
还有一种问题是因为编译时未将excel的文件加载到classes下面导致文件找不到
后面找到的解决方法是在pom文件里添加配置

<resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <!--是否替换资源中的属性-->
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.yml</include>
                    <include>**/Dockerfile</include>
                    <include>**/*.xlsx</include>
                    <include>**/*.xls</include>
                </includes>
                <!--是否替换资源中的属性-->
                <filtering>false</filtering>
            </resource>
        </resources>

在这里面的include标签中添加自己需要的文件格式,就能将文件打包到classes下面了

相关标签: java笔记 java