读取resources目录下文件
方式一
主要核心方法是使用getResource
和getPath
方法,这里的getResource("")
里面是空字符串
1 | public void function1(String fileName) throws IOException { |
方式二
主要核心方法是使用getResource
和getPath
方法,直接通过getResource(fileName)
方法获取文件路径,注意如果是路径中带有中文一定要使用URLDecoder.decode
解码。
1 | /** |
方式三
直接通过文件名+getFile()
来获取文件。如果是文件路径的话getFile
和getPath
效果是一样的,如果是URL路径的话getPath
是带有参数的路径。
如下所示:
1 | url.getFile()=/pub/files/foobar.txt |
使用getFile()
方式获取文件的代码如下:
1 | /** |
方式四(重要)
直接使用getResourceAsStream
方法获取流,上面的几种方式都需要获取文件路径,但是在SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。
1 | /** |
方式五(重要)
主要也是使用getResourceAsStream
方法获取流,不使用getClassLoader
可以使用getResourceAsStream("/配置测试.txt")
直接从resources
根路径下获取,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。
1 | /** |
方式六(重要)
通过ClassPathResource
类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。
1 | /** |
方式七
通过绝对路径获取项目中文件的位置,只是本地绝对路径,不能用于服务器获取。
1 | /** |
方式八
通过new File("")
获取当前的绝对路径,只是本地绝对路径,不能用于服务器获取。
1 | /** |
方式九
主要是通过设置环境变量,将文件放在环境变量中,原理也是通过绝对路径获取。
示例中我设置了一个环境变量:TEST_ROOT=E:\\WorkSpace\\Git\\spring-framework-learning-example
1 | System.getenv("TEST_ROOT"); |
通过设置环境变量的方式,然后通过绝对路径获取文件
1 | /** |
打印文件方法
1 | /** |