1.什么是IO流?
I,即Input;O,即OutPut;翻译过来是输入以及输出。IO流输入输出是数据相对于硬盘与内存间交互而言的。从内存角度看,若从硬盘取数据到内存,则称之为输入,也即为读入(read);若让内存的数据去到硬盘中,则称之为输出,也即为写入(write)。有个通俗的例子:把一本笔记本当作硬盘,而人的大脑当作内存;我们要想从笔记本获取信息并纳入脑中,往往是要通过看笔记本写了什么,读入大脑后才可以进行相应的信息加工处理,成为知识(就像数据读入内存,方便CPU从内存中取数据运算一样。)
2.为什么要学习IO流?
IO流贯穿了大多数据的交互(读与写),可以方便数据的管理与操作
3.流的分类
按照流的方向,分为输入流和输出流;按照流的传输方式,分为字节流和字符流。在Java中,语言编写者已经为我们写好了流的相关类(都内置Java的io包下)在因此我们只需要掌握流的使用、流的特点以及熟练调用流的方法即可,不再需要对底层原理进行过多深入。
4.Java.io下需要掌握的流
这里列出工作上常会使用的16个流,这里以分类的形式列出:
对于文件专属的类有:FileInputSteam、FileOutPutStream、FileReader、FileWriter
转换流(将字节流转换成字符流):InputStreamReader、OutPutStreamWriter
缓冲流专属:BufferedReader、BufferedInputStream、BufferedInputStream、BufferedOutputStream
数据流专属:DataInputStream、DataOutputStream
标准输出流:PrintWriter、PrintStream
对象专属流:ObjectInputStream、ObjectOutputStream
以上即为要求掌握的流(注意:类名以Stream结尾的都是字节流,以Reader/Writer结尾的都是字符流。



