IO流
什么是IO流
I/O实际上是input和output,也就是输入和输出。而流其实是一种抽象的概念,它表示的是数据无结构化传递
JAVA中IO的体系
在JAVA中I/O操作的类有很多,但是核心体系实际上就只有File、InputStream、OutputStream、Reader、Writer这5个
IO流的分类
字节流:操作的数据单元是8个字节。InputStream、OutputStream作为抽象基类。
字符流:操作的数据单元是字符。以Reader、Writer作为抽象基类
IO流的数据源
- 硬盘
- 内存
- 键盘
- 网络
缓冲流
缓冲流就是带缓冲区的处理流,它会提供一个缓冲区
缓冲区的作用主要目的是:避免每次和硬盘打交道,能够提高输入/输出的执行效率
序列化和反序列化
序列化是把对象的状态信息转化成可存储或传输的形式过程,也就是把对象转化为字节序列的过程称为对象的序列化。
反序列化是序列化的逆向过程,把字节数组反序列化为对象,把字节序列恢复为对象的过程称为对象的反序列化。
Socket类
socket可以使一个应用从网络中读取和写入数据,不同计算机上的两个应用可以通过连接发送和接受字节流,当发送消息时,你需要知道对方的ip和端口,在java中,socket指的是java.net.Socket类。