/*** 关于IO流(理论部分)* 1.什么是IO? I: Input; O: Output 也就是输入和输出,就是通过IO可以完成硬盘文件的读和写。* 2.IO流的分类:* * 按照流的方向进行分类:(以内存作为参照物)* - 往内存中去,叫做输入(Input),或者叫做读(Read).* - 从内存中出来,叫做输出(Output),或者叫做写(Write).* * 按照读取数据方式进行分类:* - 按照字节的方式读取数据,一次读取一个字节(byte)(等同于一次读取8个二进制位),这种流是万能的* 任何类型的文件都能读取,叫做字节流。* 例如文件:a中国dhe质数....* 第一次读取:一个字节,正好读到‘a’。('a'字符在windows系统中占1个字节。字符在Java中占2个字节,但是对Windows文件来说和Java没关系)* 第二次读取:一个字节,正好读到‘中’字符的一半。('中'字符在windows系统中占2个字节。)* 第三次读取:一个字节,正好读到‘中’字符的另外一半。** - 按照字符的方式读取数据,一次读取一个字符,这种流只能读取纯文本文件,叫做字符流。*.txt* 例如文件:a中国dhe质数....* 第一次读取:'a'字符* 第二次读取:'中'字符**综上所述:* 流可分为:输入流、输出流、字节流、字符流** 3.java IO流有四大家族:* * java.io.InputStream 字节输入流* * java.io.OutputStream 字节输出流** * java.io.Reader 字符输入流* * java.io.Writer 字符输出流* 这四个都是抽象类。(abstract class) 都实现了java.oi.Closeable接口,都是可关闭的。* 都有close()方法。流毕竟是一个管道,这个管道是内存和硬盘之间的通道,* 用完之后一定要关闭不然会占用很多资源。这是需要我们养成好习惯,用完流一定要关闭。** 所有的输出流都实现了:java.io.Flushable接口,都是可刷新的,都有flush()方法。* 需要我们养成好习惯:在输出流后面一定要记得flush()刷新一下,用来清空管道。不进行这步操作有可能丢失数据。** 注意:在java中只要“类名”以Stream结尾的都是字节流。以“Reader/Writer”结尾的都是字符流。* 4.java.io包下需要掌握的16个流:* 文件专属:* java.io.FileInputStream (掌握)* java.io.FileOutputStream (掌握)* java.io.FileReader* java.io.FileWriter* 转换流:将字节流转换成字符流* java.io.InputStreamReader* java.io.OutputStreamWriter* 缓冲流专属:* java.io.BufferedReader* java.io.BufferedWriter* java.io.BufferedInputStream* java.io.BufferedOutputStream* 数据流专属:* java.io.DataInputStream* java.io.DataOutputStream* 标准输出流:* java.io.PrintWriter 字符方式* java.io.PrintStream 字节方式(掌握)* 对象专属流:* java.io.ObjectInputStream (掌握)* java.io.ObjectOutputStream (掌握)*/