/** * 关于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 (掌握) */
关于IO流的基础理论
于 2022-12-22 19:25:51 首次发布


272

被折叠的 条评论
为什么被折叠?



