/**
* 关于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 (掌握)
*/