思路分析:1.使用File在指定位置創建出文件,如:e : / test1.json 2.獲取數據的byte[] 3.使用輸出流寫入
第一步:創建文件
File file = new File("要創建的目錄+文件詳細名");
if(!file.exists()){
file.createNewFile();
}
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