把json格式數據寫入到本地文件

思路分析:1.使用File在指定位置創建出文件,如:e : / test1.json    2.獲取數據的byte[]    3.使用輸出流寫入

第一步:創建文件

    File file = new File("要創建的目錄+文件詳細名");
	if(!file.exists()){
		file.createNewFile();
	}
第二步:獲取json數據byte[],如果直接就是String的字符串,直接getByte[]就可以了

    j = json 格式的數據 ;
    String s = j.toString();
	byte[] b = s.getBytes();
第三步:使用輸出流把數據寫入第一步創建的文件

    int l = s.length();
	OutputStream os = new FileOutputStream(file);
	os.write(b, 0, l);
	
	os.close();
最後別忘了關閉輸出流


但是,一般業務中用到的json串也許很長,我用了上面的方法後發現,寫入的字符串並不完全(原理不精通,不知道什麼原因)。但是如果用字符流bufferedWriter包裝下,就可以全部寫入了,如下:

第一步:同上

第二步:其中的getByte沒用到,因爲bufferedWriter可以直接寫String(也支持getByte,方法調用和字節流一樣)

第三步:調用bufferedWriter方法

    FileWriter fw = new FileWriter(file);
	BufferedWriter out = new BufferedWriter(fw);
	out.write(s);
	out.close();

說明:

1.最簡單的數據寫入文件實現,如果是從一個文件讀取到另一個文件,只需要把現成的數據使用輸入流換成從文件中讀取的即可

2.本文中並沒有給出,如:在指定的地方換行寫入;在已經存在的數據後面追加寫入等等,後期慢慢更新

3.OutputStreamWriter和BufferedWriter的簡單說明:之所以使用bufferedWriter是因爲兩點:

a.bufferedWriter是自帶的緩衝器,可以它自己控制,比較高效;而outputStreamWriter則是借用“別人”的緩衝區,所以一般在調用最後要使用flush方法,一次性把緩衝區的數據寫走,可以理解爲“先存着,再釋放”

b.bufferedWriter可以直接處理String字符串或者字符串的一部分,可以少寫點代碼




LG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章