zoukankan      html  css  js  c++  java
  • 关于Linux上面无法读取资源目录下文件的问题

     一开始我的代码是这样子的,读取本地子路径下的json文件

    代码运行的时候,在window是可以正常的

      @Override
        public String getBannerStr() {
            String str = "";
            try {
    
                Resource resource = new ClassPathResource("json/abc.json");
                File file =  resource.getFile();
                str = FileUtils.readFileToString(file, "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
                throw  new BusinessException("Json信息查询出错");
            }
    
            return str;
        }

     但是实际上,工程是在Linux上面部署为jar包的

    上面访问方式就出错了,这边一开始以为是获取资源文件的方式出问题了

    后来试了几次,发现问题不是这样.

    最后百度发现,在Linux中无法直接访问未经解压的文件,所以就会找不到文件。

    所以只能使用流的方式对静态资源进行读取

    下面是最后修改的代码

    @Override
        public String getBannerStr() {
            String str = "";
            try {
                InputStream stream = getClass().getClassLoader().getResourceAsStream("json/abc.json");
    
                BufferedReader br = new BufferedReader(new InputStreamReader(stream));
                String s = "";
                try {
                    while ((s = br.readLine()) != null) {
                        str = str + s;
                    }
                } catch (IOException e) {
    
                    e.printStackTrace();
                }
            } catch (Exception e) {
                e.printStackTrace();
                throw new BusinessException("Json信息查询出错");
            }
    
            return str;
        }
  • 相关阅读:
    java 14 -7 Date
    java 14 -6 BigInteger和BigDecimal
    java 14 -5 System类
    java14-4 Pattern和Matcher类的使用
    java 14-3 正则表达式的分割
    转:StringBuilder与StringBuffer的区别(转)
    kafka之config/server.properties配置参数说明
    Kafka内核理解:消息的收集/消费机制
    kafka删除topic及其相关数据
    kafka使用问题解决
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852469.html
Copyright © 2011-2022 走看看