学习Android新手,总是分不清各种流之间的关系,今天特意在网上找了很多资料,在这里分享一下,有需要的看一下希望能帮到,大神勿喷:
其实关于流,总共分为字节流和字符流:
字符流: FileReader FileWriter BuffereedReader BufferedWriter OutputStreamWriter InputStreamWriter
字节流:FileInputStream FileOutputStream BufferedInputStream BufferedOutputStream
字节流可以处理所有类型数据,如MP3,图片,avi。而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都要用字节流。
字节流读取的时候,读到一个字节就返回一个字节;而字符流读取的时候是读取两个字节,因为一个字符是两个字节,所以一般读取文件用字节流。
说到流,肯定有缓冲吧,读和写各有各的缓冲区,FileWriter的缓冲是每次写入都要访问io流,这样频繁的访问肯定效率低,而BufferWriter可以写入大量数据时再访问io流,这样效率就高很多。就相当于车一次拉一个人和车一次拉十个人一样,哪个成本低不言而喻了吧。所以很多时候用BufferWriter来包装FileWriter,这样就可以提高整个程序的运行效率。