IO流概述及分类
1).IO:Input(输入)和Output(输出)
流:类似于“水流”,线性的,有方向的。
2).Java中IO流的分类:
A).字节流:是Java最底层的流,可以读写任何文件(视频、音频、图像、文字)。通常用来复制文件
a).输出流:OutputStream(抽象类)
|–FileOutputStream(子类)
b).输入流:InputStream(抽象类)
|–FileInputStream(子类)
B).字符流:是基于“字节流”的,但是它只能读写“文字”。通常使用“缓冲字节流”读写文本文件。
a).输出流:Writer(抽象类)
|–FileWriter(子类)
b).输入流:Reader(抽象类)
|–FileReader(子类)
字节流
1, 一切皆为字节
1).任何数据存储在磁盘上/内存中,都是以“二进制”形式存储。
2 ,字节输出流_父类OutputStream中定义的三种输出方法
|方法 |描述 |
|write(byte[] b)–|写一个字节数组,将b.length字节从指定字节数组写入此输出流。–|
|write(byte[],int off,int len)–|从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。–|
|write(int b)–|将指定的字节写入此输出流。–|
|close() |关闭此输出流并释放与此流相关联的任何系统资源。 |
3, 字节输出流_子类FileOutputStream的使用
注意:
1).Java的输出流在构造时,文件都可以不存在,会自动创建一个空文件。
2).不要构造在一个“已存在的目录上”,会抛异常。
4,字节输入流_父类InputStream中定义的两种读取的方法
5,字节输入流_子类FileInputStream的使用
注意:
1).Java中所有的“输入流”,构造时,文件必须存在,否则抛异常。
2).不能构造在一个“已有”的目录上。