1.FileInputStream

    技术2022-07-11  93

    1.FileInputStream_1:字节流的常用子类有哪些???什么是文件字节输入输出流???什么是字节数组输入输出流???什么是序列化和反序列化???什么是对象输入输出流???

    学习:第7遍


    1.字节流的常用子类有哪些???

    字节流常见子类: 文件字节输入输出流 字节数组输入输出流 对象输入输出流

    InputStream是字节输入流的顶层父类,直接子类:9个 InputStream常用子类: FileInputStream ByteArrayInputStream ObjectInputStream

    OutputStream是字节输出流的顶层父类,直接子类:6个 OutputStream常用子类: FileOutputStream ByteArrayOutputStream ObjectOutputStream


    2.什么是文件字节输入输出流???

    FileInputStream 文件字节输入流:以字节为单位,从文件中读取数据

    FileOutputStream 文件字节输出流:以字节为单位,将数据写出到文件中


    3.什么是字节数组输入输出流???

    流(数据)的来源或目的地并不一定是文件,也可以是内存中的一块空间,例如一个字节数组

    ByteArrayInputStream 字节数组输入流:从字节数组中读取数据,即将字节数组当作流输入的来源

    ByteArrayOutputStream 字节数组输出流:将数据写出到内置的字节数组中,即将字节数组当作流输出的目的地


    4.什么是序列化和反序列化???

    序列化:将Java对象写入IO流中,实现将对象保存在磁盘上或在网络中传递对象 反序列化:从IO流中读取Java对象,实现从磁盘上或网络中恢复对象 要求: 对象必须实现Serializable接口,才能被序列化,转换为二进制流,通过网络进行传输 通过 serialVersionUID 判断对象的序列化版本的一致性: 在反序列时,会将流中的serialVersionUID与本地相应实体对象/类的serialVersionUID进行比较 如果相同就认为版本一致,则可以进行反序列化 如果不相同,则会出现序列化版本不一致的异常InvalidClassException


    5.什么是对象输入输出流???

    如果希望将Java对象写入到IO流中,或从IO流中读取Java对象,则要使用对象输入输出流,称为对象的序列化和反序列化

    ObjectInputStream: 对象输入流:用来读取对象,即反序列化

    ObjectOutputStream 对象输出流:用来写入对象,即序列化

    ObjectInputStream和ObjectOutputStream属于包装流 用于对节点流进行功能扩展 / 包装 在创建包装流,需要传入要操作的节点流对象 当关闭流时,只需要关闭包装流,节点流也会被关闭

    Processed: 0.010, SQL: 9