java流

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java流相关的知识,希望对你有一定的参考价值。

流的分类

  • 依据方向分类,分为输入流和输出流。
  • 依据读写单位,分为字符流和字节流。
  • 依据功能不同,分为节点流,处理流。

所谓的输入与输出

输入输出的参考系是程序,比如说从文件读取,这叫做输入,程序写文件,这叫输出。

节点流

字节流

字符流的单位是一个一个字节字节读取的,每一次读取一个。

字符流

字符流的单位是一个字符字符读取的,每一次读取两个字节。 二者不同的是读取单位不同。

处理流

处理流可以想象是在上述的水管中再套上一层水管。

处理流目前我应用较多的是是缓冲作用。上述中的节点流,不管是字符流还是字节流,他们读取每次读取的的字节都是少数的,这就造成一个问题,没次读取一次,需要访问一次硬盘,写一次又要访问一次硬盘,这是对硬盘的损坏。所以我们要做的就是一次读写更多的字节。我们想到的方式有两种,第一种,用一个字节数组,每次读取更多的。第二种用缓冲流,这样的话每次可以读取更多,写入的也更多,这就减少了对硬盘的访问次数。

转换流

转换流的作用是将字节流转化为字符流,这就产生一个问题,我可以直接用字符流,干吗还特地用转换流来转换字节流。这是个好问题,但是有时候,我们获取的是字节流,这时候我们不得不使用转换流来转换。

转自:http://www.cnblogs.com/-new/p/5920939.html

以上是关于java流的主要内容,如果未能解决你的问题,请参考以下文章

Java_I/O流

java Zip压缩输入输出流问题

java中的“流”是啥?

java;怎么关闭流文件?

java如何获取classpath中某文件的输出流

java的io中为啥有那么多种流啊?