输入输出
- 数据源:提供原始数据的原始媒介,常见的数据源就是:数据库、文件、其他程序、内存、网络连接、IO设备
- 流:一组有序的数据序列
- 按照操作的类型分为输入流和输出流
- 输入流的指向称为源
- 输出流的指向是字节要去的目的地
java.io包提供相关API
流的分类
从流动方向可以将IO分为输入流和输出流
从流的数据处理单元可以将IO分为字节流和字符流
综上所述,把输入输出流一般分为四种:
- 字节输入流(InputStream)
- 字节输出流(OutputStream)
- 字符输入流(Reader)
- 字符输出流(Writer)
InputStream类是字节输入流的抽象类,它是所有字节输入流的父类(其他三种相同)
对象序列化和反序列化
无论是何种类型的数据,都会以二进制序列的形式在网络上传送
- 发送方需要把这个Java对象转换为字节序列,才能在网络上传送
- 接收方需要把字节序列再恢复到Java对象
把Java对象转换为字节序列的过程称为对象的序列化
把字节序列恢复为Java对象的过程称为对象的反序列化
对象的序列化主要两个用途
- 持久化:把对象的字节序列永久地保存到硬盘上,通常存放再一个文件中
- 网络通信:在网络上传送对象的字节序列