工作中在做一个日志系统时,需要从项目resources下读取配置文件,然后记录日志,但是出现了以下问题,就是在开发调试过程中,可以正常读取但是项目打成jar包放在服务器运行发现就读取不到数据文件了,最后发现原来是在开发调试时系统项目是在本地磁盘还有目录机构,当把项目打成jar包时运行就没有真实的目录结构了,所以需要使用spring的以下方式读取:
import org.springframework.core.io.DefaultResourceLoader;
InputStream inputStream = new DefaultResourceLoader().getResource(ResourceUtils.CLASSPATH_URL_PREFIX + filePath)
.getInputStream();
readerInputStream(new BufferedReader(new InputStreamReader(inputStream, "UTF-8")))
private static List<String> readerInputStream(BufferedReader br) {
List<String> retList = new ArrayList<>();
try {
String line = null;
while ((line = br.readLine()) != null) {
if (StringUtil.isEmpty(line)) {
continue;
}
line = line.trim();
retList.add(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return retList;
}
这样读取流的方式实现,在运行开发调试或者部署都好使!👍👍👍👍