Java中的IO流

I 即Input 输入
O 即 output 输出
流(Stream):数据从原点流向汇点的过程

IO流主要有三种分类标准:方向,单位,功能

按照方向分为两种
输入流
输出流
注意:方向是根据参照物来选择的,一般的参照物就是目前我们正在编写的程序m

按照单位分为两种
字节流
字符流

按照功能分为两种
节点流
过滤流(处理流,包装流)

InputStream
含义:抽象类,所有输入流的父类
方法:
read(); 返回类型:int
read(byte[] data); 返回类型: int
read(byte[] data,int offset,int len); 返回类型:int
OutputStream
含义:抽象类,所有输入流的父类
方法:
write();
write(byte[] data);
write(byte[] data,int offset,int len)

FileInputStream
含义:输入流,字节流,节点流
常用方法:read(byte[] data); 返回类型:int
结束标志:当返回-1时,结束文件读取
注意:
1.作为节点流,可以直接连接File文件或者String类型的目录,不能够连接目录,否则会触发异常FileNotFoundException 拒绝访问
2.学会使用twr来配合使用
3.记得关流

FileOutPutStream
含义:输出流,字节流,节点流
常用方法:write(byte[] data,int offset,int len);
结束方式:当返回-1时,结束文件写操作
注意:
1.作为节点流,可以连接还未创建的文件,但是如果连接的是未创建目录下的未创建的文件,则会报异常 FileNotFoundException 未找到指定路径
2.FileOutPutStream具有很强的“杀伤性”,如果连接的是已经存在的文件,则如果是文件复制的话,会直接覆盖掉之前存在的文件内容,如果想要不覆盖,在该文件的后面继续添加内容的话,则可以这样实现:new FileOutPutStream(“目标文件”,true); 表示追加

BufferedInputStream
含义:输入流,字节流,过滤流 表示给节点流添加缓存空间
常用方法:read(); 返回类型:int
结束标志:返回值是-1的时候,表示文件读取结束
注意:
1.作为过滤流不能之间连接文件,只能连接其他流
2.它的构造方法有第二个参数,程序员可以自定义缓存空间的大小,默认是8k
3.注意使用twr方法
4.使用完毕记得关流

BufferedOutputStream
含义:输出流,字节流,过滤流
常用方法:write(byte[] data,0,int len);
结束标志:返回值是-1的时候,表示文件写操作结束
注意:
在完成写操作之后,一定要记得清空缓存空间,负责就会造成数据遗留在缓存空间里,有三种清理缓存空间的方法:
1.关闭流,调用.close()操作则会清理缓存空间
2.当缓存空间满了之后,则会自动清理
3.调用.flush();方法清除缓存空间

DataInputStream
含义:输入流,字节流,过滤流。给节点流添加读基本数据类型的能力
常用方法:readXxx(); 返回类型:Xxx 即八种基本数据类型中的一个
结束标志:不再以-1作为标准,则如果还想要读取文件,则会造成EOFException异常

DataOutputStream
含义:输出流,字节流,过滤流。给节点流添加写基本数据类型的能力
常用方法:writeXxx(Xxx);
结束标志:不再以-1为标准,同上

ObjectInputStream
含义:输入流,字节流,过滤流 给节点流添加读对象的能力
常用方法:readObject(); 返回一个Object类型的对象
结束标志:不再以-1为结束标准

ObjectOutputStream
含义:输出流,字节流,过滤流 给节点流添加写对象的能力
常用方法:writeObject(Object对象);
结束标志:不再以-1为结束标准
注意:对象一定要具有持有化能力,想要实现持有化,必须实现序列化,即创建的类需要implements serializable,或者如果有的属性可用,可不用,则可以用 transient来修饰
如果传入ObjectInputStream/ObjectOutputStream的是集合对象的话,需要集合中的所有对象全部都实现序列化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值