- 浏览: 99661 次
- 性别:
- 来自: 杭州
文章分类
最新评论
ObjectInputStream流 持久化
vo类:
package javabean;
import java.io.Serializable;
public class Student implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private static int count=1;
private int id;
private String name;
private int classid;
public Student(){
id=count;
count++;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getClassid() {
return classid;
}
public void setClassid(int classid) {
this.classid = classid;
}
public String toString(){
return name;
}
public boolean equals(Object obj){
if(obj instanceof Student){
Student stu=(Student)obj;
if(this.id==stu.id){
return true;
}
}
return false;
}
}
执行类
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javabean.Student;
public class DataSave {
public static void main(String[] args){
List<Student> list=getData();
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
private static File getFile(){
File file=new File("src\\file\\datasave.txt");
return file;
}
//获取文档数据
private static List<Student> getData(){
File file=getFile();
List<Student> list=null;
FileInputStream fis=null;
ObjectInputStream ois=null;
try {
fis=new FileInputStream(file);
if(fis.available()!=0){
ois=new ObjectInputStream(fis);
Object obj=ois.readObject();
list=(ArrayList<Student>)obj;
System.out.println(list.get(1));
}
else
{
list=new ArrayList<Student>();
}
}catch(Exception e){
e.printStackTrace();
}finally{
fis=null;
ois=null;
}
return list;
}
//更改数据
private static void setData(List<Student> list){
File file=getFile();
FileOutputStream fos=null;
ObjectOutputStream oos=null;
try{
fos=new FileOutputStream(file);
oos=new ObjectOutputStream(fos);
oos.writeObject(list);
oos.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
oos=null;
fos=null;
}
}
//插入数据
public static void insert(Student stu){
List<Student> list=getData();
list.add(stu);
setData(list);
}
//修改数据
public static void update(int i,Student stu){
List<Student> list=getData();
list.remove(i);
list.add(i, stu);
setData(list);
}
//删除数据
public static void delete(int i){
List<Student> list=getData();
list.remove(i);
setData(list);
}
public static void close(InputStream stream){
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
发表评论
-
项目中曾经犯过的错
2011-06-03 09:46 6651:改变的入参的值。错误的代码: public static ... -
容易搞混的问题
2011-05-07 14:53 7381:switch语法的运用 public static vo ... -
自写的连接池-生产者消费者
2010-10-25 11:38 776public class DBConnectionPool ... -
简陋线程池1
2010-10-12 14:46 761package pool; import java.ut ... -
内部类和外部类的关系思考
2010-08-19 10:34 822编译期报错的代码 : import ipad.IpadHtt ... -
Stream-->Directory
2010-08-16 09:04 661public class Directory { ... -
FieldReader
2010-08-14 10:35 719package utils; import java.i ... -
sax解析
2010-07-27 17:40 617package mySaxDo; import java ... -
dom树打印
2010-07-22 17:00 1033package demo; import org.apach ... -
socket编程
2010-07-22 09:09 1496服务器端: package server; ... -
单例模式和 properties
2010-07-13 17:04 927import java.io.File; import ja ... -
equals和==小测试
2010-07-01 09:44 778package testSingle; import o ... -
对String对象的操作
2010-06-30 13:50 707/** 写一个方法,实现字符串的反转,如:输入abc,输出c ... -
包装类Integer
2010-06-28 15:02 801package othertest; import or ... -
计算出出现次数最多的字母和该字母出现的次数
2010-06-28 10:13 1004方法一: package testString; im ... -
java调用plsql
2010-06-15 20:48 3462package test; import java.sql. ... -
xml解析(转)
2010-06-15 20:42 690JAVA 2009-11-09 10:22:33 阅读10 ...
相关推荐
ObjectInputStream序列化实例,简单就学会,JAVA原来so easy
ObjectInputStream的用法---马克-to-win java视频的介绍对象输入字节流
objectInputStream
ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持。本文给大家详细介绍了ObjectInputStream 和 ObjectOutputStream的相关知识,感兴趣的朋友一起学习吧
主要介绍了java序列化与ObjectOutputStream和ObjectInputStream的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
用于操作对象的流,将一个具体的对象进行持久化写入到硬盘上。 | |--PipedInputStream/:管道流。管道读取流可以读取管道写入流的数据。注意:需要加多线程技术,否则会发生死锁。read方法是阻塞式的。 | |--...
ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。 2.输出字节流OutputStream IO 中输出字节流的继承图可见上图,可以看出: OutputStream 是所有的输出字节流的父类,它是一个...
ObjectInputStream.GetField 提供对从输入流读取的持久字段的访问权限。 ObjectOutputStream ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。 ObjectOutputStream.PutField 提供对要写入...
使用流套接字建立客户机 运用ObjectOutputStream,ObjectInputStream,ServerSocket,Socket;
把字节序列化保存到文件中,就可以做到持久化保存数据内容。 从文件中读取字节序列化数据,可以直接得到对应的对象。 2 ObjectOutputStream类 将对象数据序列化,保存到文件中 构造方法 Constructor ...
要串行化一个对象,必须与一定的对象输入/输出流联系起来,通过对象输出流将对象状态保存下来,再通过对象输入流将对象状态恢复。 java.io包中,提供了ObjectInputStream和ObjectOutputStream将数据流功能扩展至可...
ObjectInputStream ois = null; List<T> list = new ArrayList(); try { if(!file.exists()){ file.createNewFile();// 首次运行,文件不存在,需要自动创建 } fis = new FileInputStream(file); ...
拿点积分啊,不然不给下东西. Java Object的一个学习源码.
把字节序列化保存到文件中,就可以做到持久化==保存数据内容。 从文件中读取字节序列化数据,可以直接得到对应的对象。 1.2 ObjectOutputStream类 将对象数据序列化,保存到文件中 构造方法 Constructor ...
JavaIO对象流 FileInputStream 与 ObjectInputStream 和 ObjectOutputStream 的组合 奥利弗·缪尔
序列化是让Java对象脱离Java运行环境的一种手段,可以有效的实现多平台之间的通信、对象持久化存储。 Java 序列化是指把 Java 对象转换为字节序列的过程,便于保存在内存、文件、数据库中,ObjectOutputStream类的...
序列化可以将对象的状态写在流里进行网络传输,或者保存到文件、数据库等系统中,并在需要时把该流读取出来重新构造一个相同的对象。 Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前为第2页。 5.2 ...
ObjectInputStream ObjectOutputStream ByteArrayInputStream ByteArrayOutputStream 【字符流】 Reader Writer InputStreamReader OutputStreamWriter BufferedReader BufferedWriter /PrintWriter FileReader ...
反序列化:ObjectInputStream ObjectOutputStream介绍 (序列化) 构造: ObjectOutputStream(OutputStream out) 参数可以传入这两个:FileOutputStream,BufferedOutputStream 关键方法: writeObject(Object obj) 将...
JavaAdvance复习题汇总 1.java语言提供处理不同类型流的类的包是(D) ...5.下列字节输入流中,哪一个不能够被实例化B A.FileInputStream B.FilterInputStream C.ByteArrayInputStream D.ObjectInputStream