字节流:
有两个根类:输入流:InputStream
输出流:OutputStream
这两个根类流都是抽象类
字节输出流:
OutputStream:方法
write(int by):写一个字节数据
write(byte[] by) :将by写到目的地
write(byte[] by,int index,int len):将by一部分数据写到目的地
close():关闭流
子类:FileOutputStream,文件输出流对象
构造方法:
FileOutputStream(File/String filename)
FileOutputStream(File/String, boolean append)
append:true表示不会覆盖文件,而是追加数据写到原有内容末尾
字节输入流:
字节输入流的根类:InputStream抽象类
方法:
int read():读取一个字节数据,如果读取到末尾返回-1.
int read(byte[] by):读取数据存储到by中,返回读取到的字节数,末尾返回-1
int read(byte[] by, int index,int len):读取数据存储到by的一部分中,返回读取到的字节数,末尾返回-1
close():关闭流
子类对象:
FileInputStream
构造方法:
FileInputStream(File/String filename)
复制文件:
读取原始文件数据,1,一个字节一个字节读取
2.使用字节数组
新文件中:写数据,来源于读取到的数据
字节缓冲流对象:
目的:提高字节数据的读写效率。
这对流本身不具体读写(不能直接读取数据源数据或将数据写到目的地)功能,仅仅是将能与数据源或目的地建立连接的流对象进行包装,从而提高效率。读的是缓冲区中的数据。写也是将数据写到缓冲区中。
缓冲输出流对象:
BufferedOutputStream:
new BufferedOutputStream(OutputStream)默认缓冲区大小是8192
BufferedOutputStream(OutputStream,int size)size:指的是指定缓冲区大小,
调用write将数据写到缓冲区中,最多一次写满8192,写满后将数据刷到目的地,如果没有写满,关闭流时将这些数据刷新到目的地。
缓冲输入流对象:
BufferedInputStream:
new BufferedInputStream(InputSream)默认缓冲区大小8192
new BufferedInputStream(InputSream,int size)size指的是指定缓冲区大小
调用read方法是从缓冲区读取一个字节数据并返回。缓冲区中的数据,使用基础流对象一次性读取8192个数据存储到缓冲区中
available():方法
close和fiush方法的区别:
close:关闭流,关闭后流不能在使用。关闭前会刷新数据到目的地
flush:将数据刷新到目的地,刷新后,流可以继续使用。
IO流的异常处理:
try(
流对象的创建
){
读写处理的代码
}catch(异常类型声明){
异常处理代码
}
这种格式不需要收到关闭流,执行完会自动关闭流对象