ToB企服应用市场:ToB评测及商务社交产业平台

标题: java 处理常量字符串过长 & springboot 项目读取 resouces 文件夹下的文件 [打印本页]

作者: 八卦阵    时间: 2023-4-13 21:47
标题: java 处理常量字符串过长 & springboot 项目读取 resouces 文件夹下的文件
长字符串起因


  1. Error: java:常量字符串过长
复制代码

解决想法


遇到的问题

一开始使用的是 hutool util 工具类去读取,但是不成功。
  1. String filePath = "payload.txt";
  2. String contentString = FileUtil.readUtf8String(Thread.currentThread().getContextClassLoader().getResource("").getPath() + filePath);
复制代码
最终解决办法
  1. // 先转为流
  2. InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(path);
  3. // 再把流转为 String
  4. String content = new BufferedReader(new InputStreamReader(inputStream))
  5.                             .lines().collect(Collectors.joining("\n"));
复制代码
  1. public final class ClassPathResourceReader {
  2.     /**
  3.      * path:文件路径
  4.      * @since JDK 1.8
  5.      */
  6.     private final String path;
  7.     /**
  8.      * content:文件内容
  9.      * @since JDK 1.6
  10.      */
  11.     private String content;
  12.     public ClassPathResourceReader(String path) {
  13.         this.path = path;
  14.     }
  15.     public String getContent() {
  16.         if (content == null) {
  17.             try {
  18.                 InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(path);
  19.                 if (inputStream!=null) {
  20.                     content = new BufferedReader(new InputStreamReader(inputStream))
  21.                             .lines().collect(Collectors.joining("\n"));
  22.                 }else {
  23.                     throw new RuntimeException("创建 lookLike-app 受众出现异常:File not exist");
  24.                 }
  25.             } catch (Exception e) {
  26.                 throw new RuntimeException(e);
  27.             }
  28.         }
  29.         return content;
  30.     }
  31. }
复制代码
这样相当于做了个本地缓存,就不用每次都去读取文件了,性能嘎嘎快。

  1. String content = new ClassPathResourceReader("payload.txt").getContent();
复制代码
出处:https://www.cnblogs.com/LoveBB/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4