public class User{
private String userName;
private String passWord;
private String registeredTime;
public User(){
}
public User(String userName,String passWord,String registeredTime){
this.userName=userName;
this.passWord=passWord;
this.registeredTime=registeredTime;
}
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;
}
public String getRegisteredTime(){
return registeredTime;
}
public void setRegisteredTime(String registeredTime){
this.registeredTime=registeredTime;
}
}
package User.javapackagecom.Imp;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.thoughtworks.xstream.XStream;
import User.javapackagecom.entity.User;
/***
*使用XStream不用任何映射就能实现多数Java对象的序列化。
*在生成的XML中对象名变成了元素名,类中的字符串组成了XML中的元素内容。
*使用XStream序列化的类不需要实现Serializable接口。
*XStream是一种序列化工具而不是数据绑定工具
*不能从XML或者XMLSchemaDefinition(XSD)文件生成类。
**/
public class SwitchXML{
/**
* XStream不关心序列化/逆序列化的类的字段的可见性。
*序列化/逆序列化类的字段不需要getter和setter方法。
*序列化/逆序列化的类不需要有默认构造函数。
**/
private XStream xStream = new XStream();
private String xmlPath = "D:/userdata.xml";
//1.obj->xml(object类型转换为xml类型)
public String printXML(User user){
System.out.println("obj->xml");
String xml= xStream.toXML(user);
System.out.println(xml);
return xml;
}
//2.xml->obj(xml类型转换为object类型,并打印)
public void printObj(String xml){
System.out.println("xml->obj");
User u = (User)xStream.fromXML(xml);
System.out.println(u.getUserName()+""
+ ""+u.getPassWord()+""+u.getRegisteredTime());
}
//3.将object类型转换为xml类型,并写入XML文件(其他格式也可以,比如txt文件)
public void writerXML(User user){
try{
FileOutputStream fs = new FileOutputStream(xmlPath);
xStream.toXML(user,fs);
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
//4.读取XML文件,加载进相应Object类型
public void readerXML(){
User user = new User();
FileInputStream fis = null;
try{
fis = new FileInputStream(xmlPath);
}catch(FileNotFoundException e){
e.printStackTrace();
}
xStream.fromXML(fis,user);
//打印对象信息
System.out.println(user.toString());
//打印对象的属性值
System.out.println(user.getUserName()+"-"+""
+ ""+user.getPassWord()+"-"+user.getRegisteredTime());
}
public static void main(String[]args){
//用户名
String username="admin";
//密码
String password="admin";
//注册时间
Date now= new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String registeredtime = format.format(now);
User user = new User(username,password,registeredtime);
SwitchXML switchXML = new SwitchXML();
//1.object类型转换为xml类型,在控制台打印
String xml = switchXML.printXML(user);
System.out.println("---------------------");
//2.xml类型转换为object类型,在控制台打印
switchXML.printObj(xml);
System.out.println("---------------------");
//3.将object类型转换为xml类型,并写入XML文件
switchXML.writerXML(user);
System.out.println("写入地址成功!!!");
System.out.println("---------------------");
//4.读取XML文件,加载进相应Object类型
switchXML.readerXML();
}
}