使用Java序列化把对象存储到文件中,再从文件中读出来
2016-10-02 15:54
603 查看
使用Java序列化把对象存储到文件中去,再从文件中读取出来;
此时,我们使用ObjectOutputStream和ObjectInputStream来进行对象的读取;
使用ObjectOutputStream对象的writeObject()方法来进行对象的写入;
使用ObjectInputStream对象的readObject()方法来读取对象。
[java] view
plaincopy
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
/**
* 使用Java序列化把对象存储到文件中,再从文件中读出来 注意读取的时候,读取数据的顺序一定要和存放数据的顺序保持一致
*
* @author Champion Wong
*
*/
public class Test08 extends TestCase {
public void test() {
// 创建一个User对象
User user = new User();
user.setId(1);
user.setName("Mr XP.Wang");
// 创建一个List对象
List<String> list = new ArrayList<String>();
list.add("My name");
list.add(" is");
list.add(" Mr XP.Wang");
try {
f920
ObjectOutputStream os = new ObjectOutputStream(
new FileOutputStream("C:/wxp.txt"));
os.writeObject(user);// 将User对象写进文件
os.writeObject(list);// 将List列表写进文件
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
ObjectInputStream is = new ObjectInputStream(new FileInputStream(
"C:/wxp.txt"));
User temp = (User) is.readObject();// 从流中读取User的数据
System.out.println(temp.getId());
System.out.println(temp.getName());
List tempList = (List) is.readObject();// 从流中读取List的数据
for (Iterator iterator = tempList.iterator(); iterator.hasNext();) {
System.out.print(iterator.next());
}
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class User implements Serializable {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
此时,我们使用ObjectOutputStream和ObjectInputStream来进行对象的读取;
使用ObjectOutputStream对象的writeObject()方法来进行对象的写入;
使用ObjectInputStream对象的readObject()方法来读取对象。
[java] view
plaincopy
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
/**
* 使用Java序列化把对象存储到文件中,再从文件中读出来 注意读取的时候,读取数据的顺序一定要和存放数据的顺序保持一致
*
* @author Champion Wong
*
*/
public class Test08 extends TestCase {
public void test() {
// 创建一个User对象
User user = new User();
user.setId(1);
user.setName("Mr XP.Wang");
// 创建一个List对象
List<String> list = new ArrayList<String>();
list.add("My name");
list.add(" is");
list.add(" Mr XP.Wang");
try {
f920
ObjectOutputStream os = new ObjectOutputStream(
new FileOutputStream("C:/wxp.txt"));
os.writeObject(user);// 将User对象写进文件
os.writeObject(list);// 将List列表写进文件
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
ObjectInputStream is = new ObjectInputStream(new FileInputStream(
"C:/wxp.txt"));
User temp = (User) is.readObject();// 从流中读取User的数据
System.out.println(temp.getId());
System.out.println(temp.getName());
List tempList = (List) is.readObject();// 从流中读取List的数据
for (Iterator iterator = tempList.iterator(); iterator.hasNext();) {
System.out.print(iterator.next());
}
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class User implements Serializable {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
相关文章推荐
- 使用Java序列化把对象存储到文件中,再从文件中读出来
- 使用Java序列化把对象存储到文件中,再从文件中读出来
- 将java对象存储到redis数据库(使用序列化和反序列化)
- 什么是序列化?一句话:就是将java对象固化成文件存起来,这样就java对象就被固话了,可以任意的存储和网络传输了,而java对象是暂时存在内存里的,是没办法传输的,因为是虚拟的,并不是实实在在的文件
- 将java对象存储到redis数据库(使用序列化和反序列化)
- 将java对象存储到redis数据库(使用序列化和反序列化)
- java对象序列化并存储到文件和数据库
- Java序列化 如何把多个对象存储在一个文件中
- Java序列化 如何把多个对象存储在一个文件中
- JAVA随笔——对象序列化与随机文件
- 使用XmlSerializer将对象序列化至XML文件中(VB.NET)
- java反射调用配置文件构造类对象,使用其方法
- Java对象序列化使用基础
- Python持久性管理——使用序列化存储Python对象
- java序列化之保存对象到文件中
- 使用XStream把Java 对象序列化为XML!!!
- Java的对象序列化以及文件IO处理
- Java 序列化对象存储
- 简单的序列化 和反序列化 ,将对象存储到本地文件中
- 关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。”的问题