static静态代码块中执行普通的读取文件方法报`classNotDef`错误

最近有个需求要去将一个属性值转换为其对应的代号,本来想直接在spring中以注入Map的形式去匹配key的值得出相应的value值,但是要匹配的分类和每个分类中的类别是在太多,就决定使用JSON的方式,将其都记录在文件里,然后写个工具类在其static代码块中做读取工具,这样在生命周期内就可以只读取一次文件了,减少系统消耗(理解不深我是这么想的)

但是问题出现了,我按照传统的读取文件方式在测试时可以正确读取但是启动javaWeb项目后直接报错了,下边是一开始的代码:

 static {
        System.out.println("1");
        File file=null;
        BufferedReader reader=null;
        String lastStr="";
        try {
            String path=ConvertType2Code.class.getClassLoader().getResource("config/codeDirec.json").getPath();
            file=new File(path);
            reader=new BufferedReader(new FileReader(file));
            String tempStr=null;
            while ((tempStr=reader.readLine())!=null){
                lastStr+=tempStr;
            }
            reader.close();


        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        jsonObject=JSONObject.fromObject(lastStr);
}

从代码上来说没有毛病的好不好 但是一开始调用就说累无法初始化呢,然后classNotDef这种的错。

最后看了hibernate 还有别的读取.property文件代码用了另一个方式,发现就可以了 找了半天也没发现原因,望有知道的道友解答下

 static {
        
        String lastStr="";
        try{
            InputStream inputStream=ConvertType2Code.class.getClassLoader().getResourceAsStream("config/codeDirec.json");
            BufferedReader bf=new BufferedReader(new InputStreamReader(inputStream,"utf-8"));
            String tempStr=null;
            while ((tempStr=bf.readLine())!=null){
                lastStr+=tempStr;
            }
            bf.close();

        }catch (Exception e){
            e.printStackTrace();
        }
        jsonObject=JSONObject.fromObject(lastStr);
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 姓名:赵丽萍 公司:宁波大发化纤有限公司 组别:第264期努力二组 【日精进打卡第89天】 【知~学习】 《六项精...
    zhaoliping阅读 125评论 0 0
  • 文/若水希言 (一) 他是家里的独子,他家四代单传。所以出生后,爷爷给他取名福宝。意思就是作为这个家里的宝贝,希望...
    若水希言阅读 979评论 0 4
  • 1. 块级元素和行内元素分别有哪些?动手测试并列出4条以上的特性区别 块级元素:div,h1~h6,p,hr,fo...
    饥人谷_二釉阅读 311评论 0 0