springboot 在本地调试,可以读取到resources下的文件内容,但是打jar包之后,找不到文件
原因:在本地调试,文件存在于本地磁盘,通过获取文件路径可以正常读取. 打成jar包部署在Linux环境之后,没有真实的磁盘路径this.class.getResource("")方法,ResourceUtils.getFile()方法无法正确获取文件.
解决办法: jar内部的东西可以当做stream 流来读取.
StringBuffer stringBuffer = new StringBuffer(); try { InputStream stream = this.getClass().getClassLoader().getResourceAsStream(filename); BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8")); String line; while ((line = br.readLine()) != null) { stringBuffer.append(line); stringBuffer.append(","); } } catch (Exception e) { e.printStackTrace(); logger.info("读取文件"+filename,e); }