static靜態(tài)代碼塊中執(zhí)行普通的讀取文件方法報`classNotDef`錯誤

最近有個需求要去將一個屬性值轉(zhuǎn)換為其對應的代號,本來想直接在spring中以注入Map的形式去匹配key的值得出相應的value值,但是要匹配的分類和每個分類中的類別是在太多,就決定使用JSON的方式,將其都記錄在文件里,然后寫個工具類在其static代碼塊中做讀取工具,這樣在生命周期內(nèi)就可以只讀取一次文件了,減少系統(tǒng)消耗(理解不深我是這么想的)

但是問題出現(xiàn)了,我按照傳統(tǒng)的讀取文件方式在測試時可以正確讀取但是啟動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);
}

從代碼上來說沒有毛病的好不好 但是一開始調(diào)用就說累無法初始化呢,然后classNotDef這種的錯。

最后看了hibernate 還有別的讀取.property文件代碼用了另一個方式,發(fā)現(xiàn)就可以了 找了半天也沒發(fā)現(xiàn)原因,望有知道的道友解答下

 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);
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,876評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 姓名:趙麗萍 公司:寧波大發(fā)化纖有限公司 組別:第264期努力二組 【日精進打卡第89天】 【知~學習】 《六項精...
    zhaoliping閱讀 153評論 0 0
  • 文/若水希言 (一) 他是家里的獨子,他家四代單傳。所以出生后,爺爺給他取名福寶。意思就是作為這個家里的寶貝,希望...
    若水希言閱讀 1,070評論 0 4
  • 1. 塊級元素和行內(nèi)元素分別有哪些?動手測試并列出4條以上的特性區(qū)別 塊級元素:div,h1~h6,p,hr,fo...
    饑人谷_二釉閱讀 353評論 0 0

友情鏈接更多精彩內(nèi)容