Serialiable
- 序列化:把内存中的数据保存到磁盘上的文件中
反序列化:把磁盘上的数据读到内存中
示例:
User类,让其实现Serializable接口
package com.hsx.domain;
import java.io.Serializable;
public class User implements Serializable {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
实现序列化,把内存中的数据读到磁盘中
package com.hsx.util;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import com.hsx.domain.User;
/**
* 实现序列化,把内存中的数据读到磁盘中
* @author hsx
*
*/
public class SerialDemo {
public static void main(String[] args) {
User user = new User();
user.setUsername("hsx");
user.setPassword("123");
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream("d:/serial.txt");
oos = new ObjectOutputStream(fos);
oos.writeObject(user);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (oos != null) {
try {
oos.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
}
反序列化:读取磁盘上存取的数据到内存
package com.hsx.util;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import com.hsx.domain.User;
/**
* 反序列化:读取磁盘上存取的数据到内存
* @author hsx
*
*/
public class SerSerialDemo {
public static void main(String[] args) {
String username = null;
String password = null;
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream("d:/serial.txt");
ois= new ObjectInputStream(fis);
User user = (User) ois.readObject();
username = user.getUsername();
password = user.getPassword();
System.out.println("username = " + username + "\tpassword = " + password);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (ois != null) {
try {
ois.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
}