1、IO流的操作步骤
step1:确定数据从哪到哪。文件信息。
step2:创建流:
流向:输入,输出
单位:字节,字符
子类流:文件,内存。。。。
step3:操作流
读取数据:输入
read()
写出数据:输出
write()
step4:关闭流
close()
2、FileInputStream
用于以字节为单位,读取文件中的数据,到程序中。
1、构造方法:
FileInputStream(String name)
通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。
FileInputStream(File file)
通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。
read()-->int
每次读取一个字节。返回值就是读入的数据本身。如果读到文件的末尾了,-1。
read(byte[] bs)-->int
每次读取多个字节,最多是bs数组的长度个。返回值是本次读取的实际的字节个数。如果到达末尾,-1.
int read(byte[] bs, int off, int len)
从该输入流读取最多 len字节的数据为字节数组 。第一个参数表示要存储本地读取的数据的数组,第二个参数,表示从哪个下标开始存储,第三个参数是表示本次读取预计的读取数量。该方法的返回值是本次读取的实际数量。如果到达文件末尾,-1。
byte[] bs = new byte[3];//内存资源
数据源:250个字节
数组:100个长度
1次:100,剩150 读取100个
2次:100,剩50 读取100个
3次:50,读完了 读取50个
int read(byte[] bs) -->读多个,最多数组长度,实际看返回值,数据在数组中,将读取到的数据存入到数组中,默认从头开始存储。
在操作IO流读取本地文件的数据,提升效率。
硬盘和内存
read()-->每次读取一个数据,
read(byte[] bs)--> 1000
每次读取一个字节:
使用字节数组作为缓冲区,读取数据:
3、FileOutputStream
构造方法:
FileOutputStream(String name) ,在文件开头写,擦除写
创建文件输出流以指定的名称写入文件。
FileOutputStream(String name, boolean append) ,在文件的末尾写数据,追加
创建文件输出流以指定的名称写入文件。
FileOutputStream(File file) ,在文件开头写,擦除写
创建文件输出流以写入由指定的 File对象表示的文件。
FileOutputStream(File file, boolean append) ,在文件的末尾写数据,追加
创建文件输出流以写入由指定的 File对象表示的文件。
写出去的数据,是清空写。将文件中原来的数据全部擦除,从头开始写数据。
void write(int data),将参数,这个字节数据写出去
void write(byte[] b),将 b.length个字节从指定的字节数组写入此文件输出流。
void write(byte[] b, int off, int len) ,将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。
String--->byte[]
String--->char[]