java中的IO流

IO的分类

java程序中,对于数据的输入输出操作以流的方式进行。
1、按操作数据单位分为字节流和字符流
2、根据流向不同分为输入流和输出流input, output是对于内存来说的,从磁盘读取文件input, 往磁盘输入文件ouput。
3、根据流的角色不同分为节点流和处理流(包装流)
IO流共涉及40多个子类,均是从如上四个基类中派生而来

输入输出流

FileInputStream
FileOutputStream
FileReader
FileWriter 

节点流和处理流

节点流和处理流是Java I/O中的两种不同类型的流。

节点流(也称为原始流)处理的是二进制数据,它们与特定的I/O设备直接相连。例如,一个输入流可以直接连接到文件、键盘、网络等设备。Java API提供了四种节点流:FileInputStream,FileOutputStream,ByteArrayInputStream和ByteArrayOutputStream。

处理流(也称为高级流)是建立在节点流之上的流,它们提供了对输入和输出数据进行过滤或处理的能力。换句话说,它们可以对原始数据进行操作,例如缓冲、压缩、加密等。Java API提供了很多种处理流,包括BufferedReader,BufferedWriter,DataInputStream,DataOutputStream,ObjectInputStream,ObjectOutputStream等。

总的来说,节点流用于输入和输出数据,而处理流用于对输入和输出数据进行处理和过滤。同时,节点流和处理流通常被组合使用,以便在I/O操作中实现更多的功能。

处理流-BufferedReader 和 BufferedWrite

处理流-BufferedInputStream 和 BufferedOutp

对象流-ObjectInputStream 和 ObjectOutputStrea

序列化和反序列化

序列化是在保存数据时,保存数据的值和数据类型
反序列化是在恢复数据时,恢复数据的值和数据类型
通常,在网络传输或数据存储过程中,需要进行序列化和反序列化操作。在网络传输中,序列化可以将对象转换成网络传输协议支持的格式,例如HTTP和TCP协议支持的二进制格式。在数据存储中,序列化可以将对象转换成数据库支持的格式,例如将对象转换成XML格式或JSON格式并存储在文件或数据库中。

反序列化可以将序列化后的数据重新转换成原始对象,使得数据能够被程序读取和使用。例如,在网络传输中,反序列化可以将接收到的二进制数据转换成可读的对象;在数据存储中,反序列化可以将从数据库中读取的JSON格式数据转换成原始对象,以便程序使用。
ObjectOutputStream 提供 序列化功能
ObjectInputStream 提供 反序列化

标准输入输出流

system.in 类型inputstream 默认设备 键盘
system.out 类型printstream 默认设备 屏幕

转换流-InputStreamReader 和 OutputStreamWrit

将字节流转化成字符流,也可以进一步包装BufferedReader

打印流-PrintStream 和 PrintWrite

只有输出,没有输入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值