springboot打成jar包后读取配置resources下的文件

mac2025-05-28  5

之前是这样读取的  打成jar放到linux  报路径问题 ,jar包找不到classpath的路径

String rootPath = this.getClass().getResource("config.json").getPath(); response.getWriter().write(readFile(inputStream)); public String readFile(String path) throws IOException { StringBuilder builder = new StringBuilder(); try { path = ImgCtl.class.getClassLoader().getResource(path).getPath(); InputStreamReader reader = new InputStreamReader(new FileInputStream(path), "UTF-8"); BufferedReader bfReader = new BufferedReader(reader); String tmpContent = null; while ((tmpContent = bfReader.readLine()) != null) { builder.append(tmpContent); } bfReader.close(); } catch (UnsupportedEncodingException e) { // 忽略 } return this.filter(builder.toString()); } /** * 过滤输入字符串, 剔除多行注释以及替换掉反斜杠 */ public String filter(String input) { return input.replaceAll("/\\*[\\s\\S]*?\\*/", ""); }

解决方法 用这种方式

InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.json"); //String rootPath = this.getClass().getResource("/public/ueditor/jsp/config.json").getPath(); //System.out.println(rootPath); //ClassPathResource resource = new ClassPathResource("public/ueditor/jsp/config.json"); response.getWriter().write(readFileN(inputStream)); /* * 读取配置文件 */ private String readFileN ( InputStream inputStream ) throws IOException { StringBuilder builder = new StringBuilder(); try { InputStreamReader reader = new InputStreamReader(inputStream , "UTF-8" ); BufferedReader bfReader = new BufferedReader( reader ); String tmpContent = null; while ( ( tmpContent = bfReader.readLine() ) != null ) { builder.append( tmpContent ); } bfReader.close(); } catch ( UnsupportedEncodingException e ) { // 忽略 } return this.filter( builder.toString() ); }

参考博客:https://blog.csdn.net/cscscssjsp/article/details/84822706

最新回复(0)