把一个对象存储到硬盘上——Externalizable

原创 2015年11月20日 17:22:33

Java的对象不仅可以在内存中调用,还可以在硬盘中存取,需要实现一个Externalizable接口,下面介绍其简单用法

首先,写一个类实现Externalizable接口

import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;

public class Car implements Externalizable{
	public Car(){}
	public Car(int id,int price){
		this.id = id;
		this.price = price;
	}
 private int id;
 public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public int getPrice() {
	return price;
}
public void setPrice(int price) {
	this.price = price;
}
private int price;

//写入硬盘的方法
@Override
public void writeExternal(out) throws IOException {
	// TODO Auto-generated method stub
	System.out.println("开始写入");
	out.writeObject(id);//ObjectOutput这个东西也就只有在这能用到了把 
	out.writeObject(price);
        out.flush();
        out.close();

 }
//从硬盘读出的方法
 @Override
public void readExternal(ObjectInput in) throws IOException,
		ClassNotFoundException {
	// TODO Auto-generated method stub
	System.out.println("开始读出");
	this.id = (int)in.readObject();
	this.price = (int)in.readObject();
	return;
}
}

调用方法

		Externalizable car1 = new Car(8,2);
		car1.writeExternal(new ObjectOutputStream(new FileOutputStream(new File("d:/exteral.txt"))));
		Car car2 = new Car();
		car2.readExternal(new ObjectInputStream(new FileInputStream(new File("d:/exteral.txt"))));
		System.out.println(car2.getId()+" "+car2.getPrice());

不过目测Serializable也可以实现相同的功能,代码如下

import java.io.Serializable;

public class Person implements Serializable {
	private String name;
	private int age;
	private int id;
	
	public Person(){}
	public Person(String name,int age,int id){
		this.name = name;
		this.age=age;
		this.id=id;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	
	
}

调用

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("d:/person1.txt")));
		objectOutputStream.writeObject(new Person("haha",25,1));
		objectOutputStream.close();
		
		ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(new File("d:/person1.txt")));
		Person p1 = (Person) objectInputStream.readObject();
		objectInputStream.close();
		System.out.println(p1.getName()+p1.getAge()+p1.getId());


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

把一个对象存储到硬盘上——Externalizable

Java的对象不仅可以在内存中调用,还可以在硬盘中存取,需要实现一个Externalizable接口,下面介绍其简单用法 首先,写一个类实现Externalizable接口 import java.i...

硬盘存储

硬盘存储 编辑 硬盘存储是指以硬盘为存储介质的存储方式 目录 1原理 2硬盘数据结构 ▪ 主引导扇区 ▪ 文件分配表 FAT ▪ 目录区 DIR ▪ 数据区 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

存储对象到文件

将对象存入到文件中去 存:文件名传xxx.dat/** * 保存Object信息到本地文件 * * @param activity * @param obj * ...

块存储、文件存储、对象存储本质区别

一、【块存储】 典型设备:磁盘阵列,硬盘        块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Ra...

硬盘存储原理

一、序  上篇文章只是引子,本系列文章想深入的是硬盘的存储原理。  磁存储技术包含硬盘,软盘和磁带等。软盘基本上谈出人们的视野了,磁带只是在 服务器存储备份上有所作用,平常最为常见的便是硬盘。不...

存储——硬盘结构

对磁盘技术那一块还是很多盲区。所以我们先了解一下磁盘结构。 硬盘大致有盘片、读写头、马达、底座、电路板等几大项组合而成。

存储硬盘感悟

众所周知,硬盘是耗损品,总是会坏的,那么与硬盘相关的工作人员势必会面临下面几个问题: 1. 怎样的硬盘算是损坏?我们目前所知的硬盘故障有:马达不转、不能识别、或者是0柱面0磁道1扇区损坏、磁盘出现坏...

一个简单的笨重Map,内存中保存一些对象,其他的保存到硬盘。

今天观看论坛,发现有些初学者,总是将大量的数据存入HashMap中

对象存储

对象存储         总体上来讲,对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。         核心是将数据通路...

光盘/硬盘存储寿命时间

据国外媒体报道,现在有越来越多的人喜欢将资料刻录在CD或DVD光盘上,然而任职于IBM德国分公司的物理学家和存储专家Kurt Gerecke却于近日称,刻录光盘的寿命只有短短几年 。 G...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)