java 对象输入输出流
来源:互联网 发布:电视直播大全软件 编辑:程序博客网 时间:2024/05/02 16:41
对象的输入输出流的作用: 用于写入对象 的信息读取对象的信息。 对象的持久化。 比如:用户信息。
ObjectInputStream : 对象输入流
ObjectOutPutStream :对象输出流
对象输入输出出流的使用注意点:
1.如果想将一个对象写入到磁盘中,那么对象所属的类必须要进行序列化实现Serializable接口,Serializable接口没有任何方法 ,是一个标记接口
2.如果对象所属的类的成员变量发生改变,你在读取原来的对象是就会报错,如果想要解决报错,保证serialVersionUID是唯一。
3.如果你不想将某些信息存入到磁盘 就可以同过transient关键字修饰成员变量
4.如果一个类中引用了另外的一个类,那么另外的这个类也要实现Serializable接口。
package com.beiwo.io;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;class Cat implements Serializable { private static final long serialVersionUID = 1L; // 保证所取对象信息唯一 String name; public Cat(String name) { // TODO 自动生成的构造函数存根 this.name = name; } @Override public String toString() { // TODO 自动生成的方法存根 return "cat.name" + this.name; }}class Person implements Serializable { private static final long serialVersionUID = 1L; // 保证所取信息唯一 String name; int age; int id; String sex; // 如果不想把某些信息存入磁盘中 ,则需要通过transient关键字修饰成员变量 transient String password; Cat cat; // 构造方法 public Person(String name, int age, int id, String password, Cat cat){ this.name = name; this.age = age; this.id = id; this.password = password; this.cat = cat; }}public class demo4 { /** * @param args * @throws IOException * @throws ClassNotFoundException */ public static void main(String[] args) throws IOException, ClassNotFoundException { // 调用方法 writeObject(); readObject(); } // 读取数据到磁盘中 public static void readObject() throws IOException, ClassNotFoundException { // TODO 自动生成的方法存根 // 找到目标文件 File file = new File("C:\\Users\\cdlx2016\\Desktop\\2\\cc.txt"); // 建立通道 FileInputStream inputStream = new FileInputStream(file); // 创建对象输入流 ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); // 读取数据 Person person = (Person)objectInputStream.readObject(); // 打印数据 System.out.println("name: " + person.name + " age: " + person.age + " id: " + person.id + " 密码:" + person.password + " cat: " + person.cat); // 关闭数据 objectInputStream.close(); } // 写入对象 private static void writeObject() throws IOException { // 找到目标文件 File file = new File("C:\\Users\\cdlx2016\\Desktop\\2\\cc.txt"); // 建立通道 FileOutputStream fileOutputStream = new FileOutputStream(file); // 创建对象输出流 ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); // 创建对象 Person person = new Person("李四", 20, 1203, "369852", new Cat("大肥")); // 写入数据 objectOutputStream.writeObject(person); // 关闭流 objectOutputStream.close(); }}
0 0
- java对象输入输出流
- java 对象输入输出流
- Java-对象输入输出(字节流)
- 对象的输入输出流
- 输入输出流操作对象
- 对象输入输出流
- 输入输出流对象
- java文件输入输出对象介绍
- java io流详解(二)对象输入输出流
- java基础5:io流对象之字节输入输出流
- java基础6:io流对象之字符输入输出流
- Java输入输出流
- 浅谈java输入输出流
- Java的输入输出流
- Java输入输出流
- 9.1 Java输入输出流
- 【分享】Java输入输出流
- Java的输入输出流
- 序列流 SequenceInputStream
- java Properties 配置信息类
- java 打印流(PrintStream)
- 百练 2746:约瑟夫问题
- java 编码
- java 对象输入输出流
- electron(开发混合式桌面应用框架)-Mac OS简单快速安装(2016-12-10)
- 20火星加法
- js模仿重载机制
- JavaScript 函数和事件
- Metron学习5_Install/Deploy Metron to the Cluster过程及出现的问题
- POJ_3278 Catch That Cow (bfs)
- 前端框架--自己实现MVVM(Vue源码解析)
- hrbustoj D.Game(第六届程序设计团队赛网络同步赛)