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算法练习——整数反转
    Java算法练习—— Z 字形变换
    Java算法练习——最长回文子串
    vs code自动生成html代码
    thinkphp整合后台模板
    composer安装后台模板
    composer(作曲家)安装php-ml
    两个网站
    PHP的开源产品discuz
    onethink中的用户登录session签名
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852469.html
Copyright © 2011-2022 走看看