本地读取资源文件
1.方式
File file = new File("src/main/resources/properties/basecom.properties");
InputStream in = new FileInputStream(file);
如果工程部署到Tomcat中时,按照上边方式,则会出现找不到该文件路径的异常。经搜索资料知道,Java工程打包部署到Tomcat中时,properties的路径变到顶层(classes下):
并且,此时读取文件需要采用流(stream)的方式读取,如下:
InputStream in = this.getClass().getResourceAsStream("/properties/basecom.properties");
其中properties前的斜杠,相对于调用类,共同的顶层路径。
服务器tomcat获取文件
获取服务器目录
springboot项目读取 resources 目录下的文件的9种方式(总结):springboot项目读取 resources 目录下的文件的9种方式(总结)
方式10
需要request,不是一种好的方式
String filePath = "ident/static/file/"+nowTimeStr+"/";
String realPath = request.getSession().getServletContext().getRealPath(filePath);
服务器jar包获取文件
如目录结构
public static String readSqlFile(String fileDir, String fileName) {
ClassPathResource cpr = new ClassPathResource(fileDir+fileName);
StringBuffer result = new StringBuffer();
try (BufferedReader br = new BufferedReader(new InputStreamReader(cpr.getInputStream()))) {
String line = null;
while((line = br.readLine()) != null) {
if(line.startsWith("--") ) { //|| StringUtils.isBlank(line)
continue;
}
result.append(line);
result.append(System.getProperty("line.separator"));
}
} catch (IOException e) {
e.printStackTrace();
}
return result.toString();
}
main {
readSqlFile("sql/,"first.txt")
}