持久化需要用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);
}