把json格式数据写入到本地文件

来源:互联网 发布:游戏美工培训学费 编辑:程序博客网 时间:2024/05/23 00:07

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

原创粉丝点击