3.1字节抽象类
InputStream:字节输入流
public int read(){}。
public int read(byte[] b){}。
public int read(byte[] b,int off,int len){}。
Output Stream:字节输出流
public void write(int n){}。
public void write(byte[] b){}。
public void write(byte[] b,int off,int len){}。
3.2文件字节流【重点】
文件字节输出流:FileOutputStream:
fos.write(int b):一次写入一个字节,整数表示这个字节对应的ASCLL码值
fos.write(byte b):一次写入一个字节数组的内容
fos.write(byte[] b,int off,int len):
参数off:从数组的指定位置开始
参数len:执行写出的字节个数
一次写入一个字节数组的内容
文件字节输入流:FileInputStream:
fis.read():一次读入一个字节,返回这个字节所对应的ASCLL值,如果读到流的末尾返回-1
fis.read(byte[] b):
从流中一次读取自定义缓冲区大小的字节,并返回读取到的字节长度,如果读到流的末尾返回-1
fis.read(byte[] b,int offset,int len):
参数offset:读取到数组指定起始位置
参数len:指定读取的字节个数
从流中一次读取自定义缓冲区大小的字节,并返回读取到的字节长度,如果读到流的末尾返回-1
3.3IO流细节
1、在使用文件输出流的时候如果文件不存在会自动创建,但是要保证其父目录存在
2、在使用文件输出流的时候,如果想要向文件中追加内容,那么需要将构造参数append设置为true
3、在使用IO读写的时候,读写的操作应当写在try代码块中,关闭资源的代码写在finally代码块中
4、将IO流的创建写在try()中,这样IO流在使用完成之后无需关闭
3.4字节缓冲流[重点]
缓冲流:BufferedOutputStream/BufferedInputStream
提高IO效率,减少访问磁盘的次数
数据存储在缓冲区中,flush是将缓存区的内容写入文件中,也可以直接close