Java程序设计2(六)

发布于:2024-12-20 ⋅ 阅读:(18) ⋅ 点赞:(0)

第五章:IO流 (java.io包中)

一、理解 1. 简单而言:流就是内存与存储设备之间传输数据的通道、管道。

2. 分类: (1) 按方向(以JVM虚拟机为参照物)【重点】 输入流:将中的内容读入到中。 输出流:将中的内容写入到中。

(2) 按单位: 字节流:以字节为单位,可以操作所有类型的文件。 字符流:以字符为单位,只能操作文本类型的文件。

 (3) 按功能: 节点流:具有基本的读写功能。 过滤流:在节点流的基础上,增加新的功能。

二、字节流 1. 父类:字节流的父类(抽象类):

(1) InputStream:字节输入流 对应的操作为读操作 功能方法:read方法

(2) OutputStream:字节输出流 对应的操作为写操作 功能方法:write方法

2. 字节节点流 (1) FileOutputStream:字节节点输出流 、文件字节输出流 构造方法: FileOutputStream fos = new FileOutputStream("D:\\test56/a.txt"); 参数:代表操作文件的路径,如果指定的文件夹不存在,则运行报错,错误信息为:     java.io.FileNotFoundException: D:\test5\a.txt (系统找不到指定的路径。);如果指定的 文件不存在,系统自动创建 绝对路径:盘符:\\文件夹\\ 文件 相对路径:文件夹/文件,默认在当前的项目中查找对应的文件夹内容   功能方法: write(int n):将单个字节写入文件中 close():关闭流 (2) FileInputStream:文件字节输入流  

3. 字节过滤流   构造方法:       FileInputStream fis = new FileInputStream("file/c.txt");       参数说明:参数代表操作路径,如果指定的文件不存在,则运行报错,错误信息为:               java.io.FileNotFoundException: file\c.txt (系统找不到指定的文件。)       功能方法:         int read():一次性读取一个字节内容,将读取的内容作为返回值返回,达到文件尾部时,返回-1         close():关闭流,释放资源

(1) 过滤流:BufferedOutputStream/BufferedInputStream 缓冲流,提高IO效率,减少访问磁盘的次数; 数据存储在缓冲区中,flush是将缓存区的内容写入文件中,也可以直接close。

三、字符流

1. 字符流的父类(抽象类): Reader:字符输入流 对应的操作为读操作 功能方法:read方法 Writer:字符输出流 对应的操作为写操作 功能方法:write方法

2. 文件字符流 (1) FileWriter文件字符输出流,继承Writer中的方法: public void write(int n):将单个字符写入到文件中 (2) FileReader文件字符输入流,继承Reader中的方法: public int read():一次读取一个字符的内容

3. 字符过滤流 (1) BufferedReader: 功能方法,readLine():一次性读取一行内容,返回内容为String,读取达到尾部,返回-1 (2) PrintWriter println(参数);

4. 桥转换流

四、File类 1. IO流:对文件中的内容进行操作。 File类:对文件自身进行操作,例如:删除文件,文件重新命名等。

2. 操作

public class TestFile {   public static void main(String[] args) throws IOException {       File file = new File("file/hh.txt");       /*System.out.println(file.exists());       file.createNewFile();*/       if(file.exists()){           System.out.println("文件存在,则直接使用...");           FileInputStream fis = new FileInputStream(file);       }else{           System.out.println("文件不存在,创建新的文件....");           file.createNewFile();       }   } }