接下来,将通过一个简单的示例,演示如何使用反序列化的方式创建新的对象:
package com.ramostear.oops;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class StudentDemo {public static void main(String[] args) {String filePath = "data.txt";Student student1 = new Student("Deserialization", "反序列化");try {FileOutputStream fileOutputStream = new FileOutputStream(filePath);ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);outputStream.writeObject(student1);outputStream.flush();outputStream.close();FileInputStream fileInputStream = new FileInputStream(filePath);ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);Student student2 = (Student) inputStream.readObject();inputStream.close();System.out.println("Student name:"+student2.getName()+", nickname:"+student2.getNickname());} catch (Exception ee) {ee.printStackTrace();}}}执行上述代码,将在控制台输出如下信息:
Student name:Deserialization,nickname:反序列化5. 使用对象克隆创建新的对象? clone()方法可以创建现有对象的副本,但在使用clone()方法前,需保证模板类实现了Cloneable接口,Cloneable接口也是一个标记类接口 。下面是使用克隆方式创建新对象的完整示例:
package net.javaguides.corejava.oops;import java.io.Serializable;public class Student implements Cloneable {private String name;private String nickname;public Student() {super();}public Student(String name, String nickname) {super();this.name = name;this.nickname = nickname;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public static void main(String args[]) {Student stu1 = new Student("Clone", "克隆");try {Student stu2 = (Student) stu1.clone();System.out.println("Student name :"+stu2.getName()+",nickname:"+stu2.getNickanme());} catch (CloneNotSupportedException e) {e.printStackTrace();}}}运行上述代码,控制台将输出如下信息:
Student name: Clone,nickname:克隆
推荐阅读
- 冬至如何养生 5种蔬菜最适合冬天吃
- Java中数据传输加密与签名那些事
- Java随机产生中文昵称
- JDBC基础整理
- JavaScript 数据类型与类型判断详解
- 微信广告怎么创建计划?创建流程有哪些?
- 图解Java内存区域
- 夏季5种阔腿裤穿法,舒适、时髦又凉爽
- Java虚拟机工作原理详解
- 12个提高 JavaScript 技能的概念
