一.关于IO
1.什么是IO
IO的本质是对文件的处理。包括文件的读写、标准设备输出等。Java中以流进行输入输出的。IO流分为字符流与字节流。
2.字符流和字节流的区别
很简单,字符流的底层是字节流。两种的用法也不一样,字符流主要是读取文本文件内容的,可以一个字符一个字符的读取,也可以一行一行的读取文本内容,大多用于处理字符串。而字节流读取的单位为byte,byte是计算机存储最基本单位,可以用字节流来读取很多其他的格式文件:比如图片、视频等等。
二.为什么要用BufferedWrite和BufferedReader
因为该流带有默缓存字符输入输出流,因为有缓存区所以效率很高。众所周知,在android开发中执行效率是非常重要的。
android中有很多场景:比如从接口获取数据,获取就直接写入到本地。第二次直接从本地获取数据,这样减少了网络请求带来的风险,并且提升了效率,增加了用户体验。
三.BufferedWrite和BufferedReader的使用
1.BufferedWrite的使用
该类是将字符写入到文件中,很简单直接上代码;
FileWriter fw = new FileWriter("Buffered.txt");
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write("hello world");
bufw.newLine(); //这是BufferedWrite特有的方法 作用是换行起到了分割的作用
bufw.write("!hello world");
bufw.flush();
bufw.close();
看看效果:
Paste_Image.png
创建了Buffered.txt的文件,并输写入了write()中的内容。
问题:如果再次执行会往该文件继续插入数据还是覆盖之前数据呢?
答案:经过实验 会覆盖数据。
2.BufferedReader的使用
该类是读取文件中的字符串,主要的方法是 int read(); //读取单个字符 String readLine(); //读取一个文本行
Reader fr = new FileReader("Buffered.txt");
BufferedReader bufr = new BufferedReader(fr);
String content = "";
String line = null;
while((line = bufr.readLine()) != null) {
content += line;
}
System.out.println(content);
看下效果:
Paste_Image.png
四.总结
这样就简单介绍完了IO流中的BufferedReader与BufferedWrite。在平常的编码中,效率是最非常重要的,所以该两种流也是用的比较多的。写的也比较简洁,写的复杂了反而是会影响各位看管的理解_
IO流有很庞大的分支,如果每个分支都介绍完是个浩大的工程,但是会一种流之后其他的也是一样的套路,最后献上IO的层级关系图。
网友评论