IO流
概述
作用:传输数据
分类:
方式1:按照流向分类 输入流 输出流 方式2:按照传输的数据分类 字节流:传输的数据以字节(byte)为单位 字符流:传输的数据以字符(char)为单位 方式3:按功能分类 包装流:对传输的数据进行加工 节点流:直接从数据源到程序或从程序到指定位置
字节流
体系
InputStream:字节输入流
方法:
int read():一次读取一个字节,返回值为读取到的字节.当返回值为-1时表示读取结束
int read(byte b[]):一次读取一组字节,读取到数组b中,返回值为本次读取到的长度.将读取到的数据从第0个位置开始存储
int read(byte b[], int off, int len):一次读取一组字节,读取到数组b中,返回值为本次读取到的长度,将读取到的数据从第off个位置开始存储,存储len个
void close():关流
OutputStream:字节输出流
方法:
void write(int b):一次写入一个字节
void write(byte b[]):一次写入一组字节
void write(byte b[], int off, int len):一次写入一组字节,从off位置开始,写入len个
void flush():冲刷
void close():关流
文件流
作用:将数据写入到文件中或从文件中读取数据
FileInputStream:从文件中读取数据
FileOutputStream:将数据写入到文件中
注意:
FileOutputStream(文件地址):
当文件不存在则创建一级文件,如果文件存在,则删除文件,在创建新文件
FileOutputStream(文件地址,是否追加)
当文件不存在则创建一级文件,当二参为true如果文件存在,在原有基础上追加
内存流
作用:将数据写入到内存中,或从内存中读取数据
注意:默认内存大小32b,自动扩容
ByteArrayInputStream
ByteArrayOutputStream
toByteArray():获取内存流中的数据
缓冲流
作用:提高代码的读写效率
注意:缓冲区默认大写8kb
BufferedInputStream
BufferedOutputStream
对象流
作用:读写对象
ObjectInputStream
Object readObject()
ObjectOutnputStream
void writeObject(Object obj);
注意:
1,读写的对象所属的类必须实现序列化接口(Serializable)
2,静态属性不参与序列化
3,瞬时属性不参与序列化(使用transient修饰的属性)
字符流(下周一学)
路径
相对路劲:相对于当前文件的位置
.:当前路径 ..:上一级路径 \:windows系统下的路径分割符 相对于当前项目下
绝对路径:从盘符的根目录开始书写
经验
1,你会那些设计模式?
单例
工厂
生产者与消费者
监听者默认
2,是否使用过装饰者模式?
使用过,所有的包装流都是装饰者模式