输入流和输出流的联系和区别
在程序和文件之间,输入和输出的方向是针对程序而言。
向程序中读入,就是输入流,是获得数据。从程序中外读,就是输出流,是传出数据
节点流和处理流联系和区别
介绍节点流和处理流
节点流和处理流是IO流的一种划分。
节点流可以从或向一个特定的节点读写数据
处理流是对一个已存在的流的连接和封装,通过封装流的功能实现数据读写
二者的区别和联系
节点流是底层流,可以直接和数据源相接。
处理流包装节点流可以消除不同节点流实现的差异,还能提供更便捷的方法进行输入和输出
处理流对节点流进行包装会使用修饰器设计模式,不会直接同数据源相连。
处理流的功能(优点)
- 以增加缓冲的方式来提高输入和输出的效率,提高了性能
- 自身能提供一系列便捷的方法来处理一次输入和输出大批量的数据
IO流的分类
根据流的方向分为:输入流和输出流
根据流能处理的信息量大小分为:字节流和字符流
根据流所连接的对象不同分为:节点流和处理流
列举常用的字节输入输出流
FileInputStream 从文件系统中的某个文件获得输入字节
ObjectInputStream 对使用ObjectOutStream写入的基本数据和对象进行反序列化
StringBufferInputStream 在应用程序创建输入流
缓冲流的优点和原理
带缓冲的流的工作原理:读取到一个字节/字符,先不输出,等凑足了缓冲的最大容量后一次性写出去,从而提高了工作效率
优点:减少对硬盘的读取次数,降低对硬盘的损耗。
序列化的定义,实现,注意事项
将一个对象写在硬盘上或者网络上,对其进行序列化,将它序列化成为一个字节流。
实现接口Serializavle
如果对象某个属性是对象,必须也实现接口Serializavle
序列化对静态变量无效
如果不希望某个属性参与序列化,使用transient
序列化版本不兼容