分类
(1)按照流的方向进行分类:以内存为参照物,往内存中去的叫输入(读),从内存中出来的叫做输出(取)
(2)按读取的数据方式的不同进行分类:有的流是按字节的方式进行读取,一次读取1个字节(byte),等同于一次读取8个2进制位,这种流是万能的,什么类型文件都能读取;有的流是按字符方式读取数据,一次读取1个字符,这种流是为了方便读取文本文件而存在,但不能读取图片,音频等,word文件也无法读取
综上所述,流的分类有:输入输出流,字符字节流
3.流的四大家族
Java.io.InputStream---------->字节输入流
Java.io.OutputStream---------->字节输出流
Java.io.Reader---------->字符输入流
Java.io.Writer---------->字符输出流
注意:所有的流都有close()方法,用完流一定要关闭!!!
4.所有的输出流都实现了:
Java.io.Flushable接口,都是可刷新的,都有flush()方法,输出流在最终输出之后,一定要写flush()方法,表示将管道当中的输出数据强行输出完。这个方法作用是清空管道
5.常用流
(1)文件流
Java.io.FileInputStream
Java.io.OutputStream
Java.io.FileReader
Java.io.FileWriter
(2)转换流(字节流---->字符流)
Java.io.InputStreamReader
Java.io.OutputStreamWriter
(3)缓冲流
Java.io.BufferedReader
Java.io.BufferedWriter
Java.io.BufferedInputStream
Java.io.BufferedOutputStream
(4)数据流
Java.io.DataInputStream
Java.io.DataOutputStream
(5)标准输入输出流
Java.io.PrintWriter
Java.io.PrintStream
(6)对象流
Java.io.ObjectInputStream
Java.io.ObjectOutputStream