专栏首页shimeath的Java学习其他流---对象处理流

其他流---对象处理流

新学习内容

该流做的是对象持久化处理 java.io.Serializable 空接口,向jvm声明,实现了这个接口的对象即可被存储到文件中 transient(译:暂时) 声明不存储到文件中的属性 ObjectInputStream和ObjectOutputStream 对象输入输出流

建立雇员对象:

package cn.hxh.io.other;

public class Employee implements java.io.Serializable {
	private transient String name;
	private double salary;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}

	public Employee(String name, double salary) {
		super();
		this.name = name;
		this.salary = salary;
	}

	public Employee() {
		super();
	}

}

进行读取写入完整代码

package cn.hxh.io.other;

import java.io.*;
import java.util.Arrays;

public class ObjectDemo01 {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		write("D:/aa/aa.txt");
		read("D:/aa/aa.txt");
	}
	
	public static void read(String destPath) throws IOException, ClassNotFoundException {
		File dest = new File(destPath);
		ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(dest)));
		Object obj = ois.readObject();
		Employee emp = null;
		if (obj instanceof Employee) emp = (Employee) obj;
		System.out.println(emp.getName());
		System.out.println(emp.getSalary());
		System.out.println(emp.getClass());
		obj = ois.readObject();
		int[] i = null;
		if (obj instanceof int[]) i = (int[]) obj;
		System.out.println(Arrays.toString(i));
		ois.close();
	}
	
	public static void write(String destPath) throws IOException {
		Employee emp = new Employee("aaa", 10000);
		File dest = new File(destPath);
		ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(dest)));
		oos.writeObject(emp);
		int[] i = {1, 2, 3, 4, 5};
		oos.writeObject(i);
		oos.flush();
		oos.close();
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java基础知识(一)

    JRE: java Runtime Environment(java运行时环境)。即java程序的运行时环境,包含了java虚拟机,java基础类库。

    shimeath
  • 03 设计模式 抽象工厂

    建立一个最高层级的工厂,用来生产不同产品的工厂,然后再建立一个产品规范,用来规定生产的产品需要有什么样的功能。

    shimeath
  • 09 设计模式 动态代理

    之前学习过静态代理,发现有个缺点,每当需要代理一个类就需要创建与之相当的代理类,极大的增加了代码量。现在通过动态代理,可以通过极少的代码量实现所要的功能

    shimeath
  • 设计模式-里氏替换原则

    在上面的三块代码中,当调用SmartTest类的resize方法的时候,如果传入的是父类,那么将会可以的,如果传入的是子类,正方形,那么将会不可以的。

    mySoul
  • JVM体系结构详解

    虚拟机是物理机的软件实现。Java是用WORA(编写一次运行到任何地方)的概念开发的,它在VM上运行。编译器将Java文件编译成Java .class文件,然后...

    挨踢小子部落阁
  • JavaIO

    1.在IO有两种数据传输格式一个是字符流还一个是字节流 但是字符流就会涉及到编码的问题 一开始美国使用的自己的编码表就是ASCII表 中国的字符需要被识别也需要...

    lwen
  • 技术揭秘:扫地机器人是如何做室内定位的?

    本文作者张玉坤/刘伟,来自北邮人机与认知实验室。路径规划技术是扫地机器人研究的核心内容之一,机器人定位与环境地图构建就是为路径规划服务的,本文是扫地机器人路径规...

    机器人网
  • JVM架构介绍

    每个Java开发人员都知道字节码将由JRE (Java Runtime Environment)执行。但是很多人不知道JRE是Java虚拟机(JVM)的实现,它...

    程序你好
  • Android 当子线程执行完,提交到主线程工具类

    Demo_Yang
  • 新痛点:APT组织PawnStorm 0Day如何绕过Java点击播放保护

    几个月以前,趋势科技发现了APT组织Pawn Storm利用之前未经披露的Java漏洞(CVE-2015-2590)进行攻击。在那之后,我们注意到一个被用于染过...

    FB客服

扫码关注云+社区

领取腾讯云代金券