一、概念
1、IO流:流就是内存和存储设备之间传输数据的通道、管道。
2、流的分类
(1)按照方向分:【以jvm为参照物】
a. 输入流:将 存储设备 中的数据读取到 jvm内存 中,读操作
b. 输出流:将 jvm内存 中的数据写出到 存储设备 中,写操作
(2)按照单位分:
a. 字节流:以字节为单位,可以操作所有类型文件
b. 字符流:以字符为单位,只能操作文本文件(以记事本打开,但是不丢失原有内容的文件,例如.java .html)
(3) 按照功能分:
a.节点流:只具有基本的读写功能
b.过滤流:在节点流的基础上,增强新的功能
二、字节流
1、字节流的父类:【抽象类】
InputStream:字节输入流,对应的为读操作,read方法
OutputStream:字节的输出流,对应的为写操作,write方法
2、字节节点流:
(1) FileOutputStream:文件字节的输出流
a. 常见的构造方法:
a.1. FileOutputStream fos = new FileOutputStream("操作的文件路径及文件名");
i.参数:代表操作的路径及文件名,e:/test/a.txt 或者 e:\\test\\a.txt
ii.如果指定的文件不存在,则系统默认创建文件;但是指定的文件夹如果不存在,则报错,错误信息为 java.io.FileNotFoundException(系统找不到指定的路径)。
iii.绝对路径:盘符:/文件夹/文件名 (不通用)
iv.相对路径:文件夹/文件名,默认在当前project中查找有没有指定的文件夹及文件,如果指定文件不存在,则系统默认创建一个新文件;如果指定文件夹不存在,则运行报错,错误信息为 java.io.FileNotFoundException(系统找不到指定的路径)。
a.2. FileOutputStream fos = new FileOutputStream("操作的文件路径及文件名",tr