一,IO流的分类
A,按照操作的对象不同可分为字节流与字符流
B,按照流的方向不同可分为输入(指从外部存储设备拿文件到内存)流也叫读与输出(指从内存把文件写入到外部存储设备)流也叫写
注:字节流可以操作任何类型的文件,字符流是后来才出现的,主要用来操作字符类的文件;字符流的出现源于编码表的问题,一开始计算机内使用ANSII编码,后来每种语言都有了自己的编码方式即编码表,为了统一这些编码信息国际标准化组织便产生了Unicode编码信息表来把世界各国的语言都包括在内,此编码表采用两个字节即16位来存储每一个字符,java内置的编码表便是Unicode编码;字符流是当读取文件的时候,以字节的形式读取后,查询编码表看具体使用哪种编码方式,查到以后再进行文件的输出,所以字符流是字节流+查编码表的封装形式。
二,流的顶层基类
所有流的操作无非两种形式:读与写;所以Java便所这两种操作形式抽取出了字节流与字符流的两种顶层的基类
字节流的顶层基类:InputStream与OutputStream
字符流的顶层基类:Read与Write
三,字符流FileWriter
1 public static void function_demo1() throws IOException { 2 // 创建字符写入流对象,接收一个要写入的文件路径对象,此文件若不存在则新创建一个文件,若已存在则覆盖的文件 3 FileWriter fw = new FileWriter("demo1.txt"); 4 fw.write("abcdefg");// 把内容写入缓冲区 5 fw.flush();// 从缓冲区把内容刷入文件中 6 fw.close();// 关闭流 7 }