版本差異對比(五)-- 以JSON格式持久化文件MD5值至磁盤

持久化需要用GSON將Map轉換爲Json數據,以便讀取時直接可以轉換回Map。

/**
     * java讀寫文件 讀取d:/1.txt文件內容,寫入f:/text.txt文件中.
     * 
     * 寫入文件換行用fw.write("\r\n"); 或者fw.write("\n");
     * 
     * @author young
     * 
     */
    // 讀寫文件
    public static void rwFile(String json) {
        try { // 防止文件建立或讀取失敗,用catch捕捉錯誤並打印,也可以throw

            /* 寫入Txt文件 */
            File writename = new File("D:/output.txt"); // 相對路徑,如果沒有則要建立一個新的output。txt文件
            if(writename.exists()){
                writename.delete();
            }
            writename.createNewFile(); // 創建新文件
            BufferedWriter out = new BufferedWriter(new FileWriter(writename));
            out.write(json); // \r\n即爲換行
            out.flush(); // 把緩存區內容壓入文件
            out.close(); // 最後記得關閉文件

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

     /**
     * 讀取txt文件的內容
     * @param file 想要讀取的文件對象
     * @return 返回文件內容
     * @throws IOException 
     */
    public static String txt2String(File file){
        StringBuilder result = new StringBuilder();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(file));// 構造一個BufferedReader類來讀取文件
            String s = null;
            while ((s = br.readLine()) != null) {// 使用readLine方法,一次讀一行
                result.append(s);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(br != null)
                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
        return result.toString();
    }

調用:

public static void main(String[] args) throws IOException {
        // System.out.println("zipmd5="+getFileMD5(new
        // File("D:\\test\\D#&&test2&&src&&Main.java.zip")));
        // System.out.println("md5="+getFileMD5(new
        // File("D:\\test2\\src\\main.java")));
        System.out.println("md5==" + getDirMd5ByZip(new File("D:\\test7")));
        System.out.println("123123" + md5Map);
        rwFile(new Gson().toJson(md5Map));
        // System.out.println("size:"+getDirMd5ByZip(new
        // File("D:\\test7")).size());
        /*
         * Map<String, FileHelperModel> map = getZipDirMD5(new
         * File("D:\\test")); for (Entry<String, FileHelperModel> entry :
         * map.entrySet()) { FileHelperModel fhm = entry.getValue();
         * System.out.println("fhm:" + fhm.toString());
         * 
         * }
         */
        //String strMap = txt2String(new File("D:/output.txt"));
        //Map<String,FileHelperModel> myMap = new Gson().fromJson(strMap, new TypeToken<Map<String,FileHelperModel>>(){}.getType());
        //System.out.println("myMap:" + myMap);
        //System.out.println("strMap===" + strMap);
    }
發佈了141 篇原創文章 · 獲贊 851 · 訪問量 185萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章