思路分析: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