java 中序列问题
java中时常遇到序列化的问题,但是自己也没有用过,这里问问大家.
1:在开发中序列化主要用在哪里?
2:能不能举个简单的例子.
先在这里谢谢大家了 !!
------解决方案--------------------
分给我算了...序列化的对象 首先要实现Serializable接口,这个接口是空接口,实现它说明了你的那个类具有了可序列化的能力.(也有书写的是 冰冻 解冻)就是
序列化和反序列化, 这个的作用就是把一个整体的对象存入内存中进行读取...
下面给个列子.希望有用
import java.io.Serializable;
public class User implements Serializable{
String name;
int age;
String password;
public int getAge() {
return age;
}
public String toString(){
return name+age+password;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String name, int age, String password) {
this.name = name;
this.age = age;
this.password = password;
}
}
//测试类
import java.io.FileInputStream;
import
java.io.FileNotFoundException;
import java.io.FileOutputStream;
import
java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class SerializableTest {
List<User> li = new LinkedList<User>();
public SerializableTest(){
li.add(new User("李四",21,"321"));
li.add(new User("王五",22,"456"));
}
//序列化(冰冻)
public void ObjectOutput(){
try {
OutputStream os = new FileOutputStream("date.dat");
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(li);
oos.close();
} catch (
FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (
IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
//反序列化(解冻)
public void ObjectInput(){
try {
InputStream is = new FileInputStream("date.dat");
ObjectInputStream ois = new ObjectInputStream(is);
List li = (List)ois.readObject();
//List可以用这种遍历元素
// for(int i = 0; i<li.size();i++){
// User u = (User)li.get(i);
// System.out.println(u.getAge()+u.getName()+u.getPassword());
// }
for(Iterator it = li.iterator();it.hasNext();){
User u = (User)it.next();
System.out.println(u.getAge()+u.getName()+u.getPassword());
}
} catch (File
NotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (
ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public static void main(String[] args) {
SerializableTest st = new SerializableTest();
st.ObjectInput();
}
}