IO流
IO:传输数据,做输入输出,拷贝,上传下载…
流:一连串流动的数据,以先入先出的方式流动,管道
- 按照流向分: 都是大脑为中心,程序为中心
- 比如: 文件(数据源)–输入流–>程序(目的地)
- 程序–输出->文件
IO:传输数据,做输入输出,拷贝,上传下载...
不同流:管道
流分类:
操作单元分类:
字节:字节的输出 字节的输入 *****
字符:
功能分:
节点流
功能流
按照流向: 以自己的单位(程序)
输入流
输出流
分类之间都是相辅相成的
流的使用
创建(参数为File,路径字符串)
功能
节点:
字节流:
输入FIleInputStream
输出FIleOutputStream
字符流
输入FileReader
输出FileWriter
功能流:
对象流
输入ObjectInputStream
输出ObjectOutputStream
流分类
字节流:
万能流,能够传输任意类型的数据
字节流读入 以程序为中心 数据源--读入-->程序
InputStream 抽象父类 字节输入流
FileInputStream 文件字节输入流,从系统文件中读入数据到程序
构造器 FileInputStream(String name) 内部会先构建File对象,然后调用下面结构File对象的构造器
new FileInputStream(File);
方法
read()->返回值int,读到的字节数据,如果没有数据返回-1 读入一个字节的数据
read(byte[]) 一个字节数组一个字节数组读入,返回读入到数组中数据的个数,如果没有读到,返回-1
注意:java中字符串中表示路径可以使用\\或者/,使用\会识别成为转义字符
字节输出流:
OutputStream 抽象父类
FileOutputStream 文件字节输出流
构造器
FileOutputStream(String name) 创建一个文件输出流写入文件指定名称。
默认覆盖原有内容
FileOutputStream(String name, boolean append)写出 并且追加。
常用方法
write(int)
write(byte[] b)
write(byte[] b, int off, int len)
flush() 只要是输出流都要记得关闭之前刷出
close()
写出的时候,如果文件系统中不存在,系统会自动帮你创建一个,但是如果是目录不存在,系统不会创建
示例:
数据源文件----->程序------>目的地文件
文件拷贝:
1.创建流
文件字节输入流
文件字节输出流
2.先读入 后写出
3.刷出
4.关闭(后打开的先关闭)
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.I