对象流

  • 对象流就是对引用数据类型进行操作
  • 序列化:将对象的状态信息转换为可以存储或传输的形式的过程,因此类需要序列化后才可以存储到文件中

对象输出流:

很简单,就三句话,将把一个对象导入指定文件中,要注意:被导入的对象必须要实现一个借口(Serializable,可序列化接口),而这个接口就是一个标志,在没有作用,标志你可以被导入到硬盘中

我们写进文件中的信息我们看不懂,但是计算机可以看懂

package com.bjsxt.test08;

import java.io.*;

public class Test {
public static void main(String[] args) throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("D:\\a\\a.txt")));
oos.writeObject(new Student(18,"hao"));
oos.close();
}
}

对象输入流:

注意:

  1. 类中要有ToString方法
  2. 要给类加一个序列化版本号,这样就可以无论如何修改都可以同步了,就不会出现异常
  3. 类中static,transient修饰的属性不会参与序列化
  4. 如果你把引用数据类型当做属性的话(需要创建对象),必须将它进行序列化操作,不然会影响外边的序列化操作
package com.bjsxt.test08;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream; public class Test02 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("D:\\a\\a.txt")));
Object o = ois.readObject();
System.out.println(o);
ois.close();
}
}
  • 实现类如何生成序列化版本号?
  1. 点击File------->Settings--------->inspections

  2. 在实现类上Alt+Insert生成序列化版本化。

io流(对象流总结)的更多相关文章

  1. JAVA_基础IO流对象流(三)

    处理流:对象流 ObjectInputStream和OjbectOutputSteam用于存储和读取基本数据类型数据或对象的处理流.可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来. ...

  2. JAVA笔记12__字节、字符缓冲流/打印流/对象流/

    /** * !!:以后写流的时候一定要加入缓冲!! * 对文件或其它目标频繁的读写操作,效率低,性能差. * 缓冲流:好处是能更高效地读写信息,原理是将数据先缓冲起来,然后一起写入或读取出来. * * ...

  3. java对象流(二)

    对象流,可以将java中的对象转为字节进行输出.将对象写入文件时.文件输出流是将字节写入到文件中. 对象流是将给定的对象转化为一组字节.writeObject()方法就是将对象转为字节. 对象流,读的 ...

  4. day03 对象流与序列化

    对象流 java.io.ObjectOutputStream和ObjectInputSteam 对象流是一对高级流,在流连接中的作用是进行对象的序列化与反序列化. 对象序列化:将一个java对象按照其 ...

  5. Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)

    一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...

  6. Java之IO流基础流对象

    输入流和输出流是相对于内存设备而言 即将外设中的数据读取到内存中就是输入    将内存中的数据写入到外设中就是输出   字符流的由来:     其实就是:字节流读取文字字节数据后,不直接操作而是先查指 ...

  7. Java IO流之对象流

    对象流 1.1对象流简介 1.2对象流分类 输入流字节流处理流:ObjectInputStream,将序列化以后的字节存储到本地文件 输出流字节流处理流:ObjectOutputStream 1.3序 ...

  8. java IO之 序列流 集合对象Properties 打印流 流对象

    序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入 ...

  9. Java IO(Properties/对象序列化/打印流/commons-io)

    Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载. ...

随机推荐

  1. Install wx

    Ubuntu 16.04: 由于是PY交易, 实际上是安装wxPython: pip install -U \ -f https://extras.wxpython.org/wxPython4/ext ...

  2. TypeScript 1.7 & TypeScript 1.8

    TypeScript 1.7 & TypeScript 1.8 1 1 https://zh.wikipedia.org/wiki/TypeScript TypeScript是一种由微软开发的 ...

  3. Gradle & Java

    Gradle & Java Gradle Build Tool I Modern Open Source Build Automation https://gradle.org/ https: ...

  4. How to using PyPI publish a Python package

    How to using PyPI publish a Python package PyPI & Python package https://pypi.org/ main make a f ...

  5. jsbridge 原理 & 通信原理

    jsbridge 原理 & 通信原理 Hybrid 方案是基于 WebView 的,JavaScript 执行在 WebView 的 Webkit 引擎中; 因此,Hybrid 方案中 JSB ...

  6. post upload file & application/x-www-form-urlencoded & multipart/form-data

    post upload file application/x-www-form-urlencoded & multipart/form-data https://stackoverflow.c ...

  7. 2021 NGK生态所体验好、交易快 引人注目!

    据悉,NGK计划于2021年2月15日正式上线自己的生态所(时间待定),目的在于满足NGK生态建设者对于NGK几大币种的交易等需求,如NGK.BGV.SPC.USDN.VAST等.只要上NGK生态所, ...

  8. NGK与AOFEX交易所达成战略合作,BGV即将上线A网!

    据NGK官方消息,NGK官方已经与英国伦敦知名交易所AOFEX交易所达成战略合作,将于12月2日全球首发BGV,现已开启充值服务.同时,在12月3日15:00,用户可以参与BGV交易:在12月4日15 ...

  9. C/C++子函数参数传递,堆栈帧、堆栈参数详解

    本文转载自C/C++子函数参数传递,堆栈帧.堆栈参数详解 导语 因为参数传递和汇编语言有很大联系,之后会出现较多x86汇编代码. 该文会先讲一下x86的堆栈参数传递过程,然后再分析C/C++子函数是怎 ...

  10. Vue学习笔记-Vue.js-2.X 学习(七)===>脚手架Vue-CLI(路由Router)

    脚手架Vue-CLI(路由Router) 一 按装(通过新创建脚手架按装),如果在原来的脚手架上按装直接进图型化界面vue ui的插件按装. 二 使用(上面按装下面步骤自动会生成) 第一步:导入路由对 ...