1、读取文件系统路径文件 * 一定要使用绝对路径
String fileName = getServletContext().getRealPath("/index.jsp"); // 读取WebRoot下,Linux下是webapp下
String fileName2 = getServletContext().getRealPath(
"/WEB-INF/a.properties");// 读取WebRoot/WEB-INF/a.properties
2、读取classpath下文件
String fileName3 = ReadFile.class.getResource("/info.txt").getFile();// 读取src下info.txt
String fileName4 = ReadFile.class.getResource(
"/cn/itcast/config/info.txt").getFile();// 读取 src下
// cn.itcast.config包下info.txt
3、使用ResourceBundle 快速读取src下properties文件
String value = ResourceBundle.getBundle("myproperties").getString(
"name");// 读取src下 基名为myproperties的properties文件,获取其中name配置值
4、使用Properties类加载Properties文件
// 读取src下b.properties
InputStream in = ReadFile.class.getResourceAsStream("/b.properties");
Properties properties = new Properties();
properties.load(in);
String value2 = properties.getProperty("name"); // 获得name属性
SpringBoot文件下载代码
@RequestMapping(value = "/download",produces = "application/octet-stream;charset=UTF-8")
public ResponseEntity<byte[]> export(HttpServletRequest request) throws IOException {
String fileName=new String("批量续保模板.xlsx".getBytes("UTF-8"),"iso-8859-1");
HttpHeaders headers = new HttpHeaders();
File file = new File(request.getSession().getServletContext().getRealPath("/template/批量续保模板.xlsx"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); //设置响应方式
headers.setContentDispositionFormData("attachment", fileName); //设置响应文件
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); //把文件以二进制形式写回
}