XStream生成xml文件和从xml文件中得到对象
public class TestReadAndWrite {
/**
* @param args
*/
public static void main(String[] args) {
Person person=new Person();
person.setName("张三");
Calendar date=Calendar.getInstance();
Birthday bir=new Birthday();
bir.setDate(date);
bir.setPerson(person);
bir.setGenderMale();
XStream stream=new XStream();
stream.alias("birthday", Birthday.class);
stream.alias("person", Person.class);
stream.registerConverter(new BirthdayConverter2());
stream.registerConverter(new DateConverter(Locale.CHINA));
//生成xml文件
try{
//生成xml文件
FileOutputStream fos = new FileOutputStream("D://1.xml");
//为了防止乱码,指定文件输出的编码格式
OutputStreamWriter writer = new OutputStreamWriter(fos, Charset.forName("GBK"));
//xml文件头必须手工加上
writer.write("<?xml version=\"1.0\" encoding=\"GBK\" ?>\n");
stream.toXML(bir, writer);
writer.close();
}catch(Exception e){
e.printStackTrace();
}
//从xml文件中得到对象
try{
FileInputStream fis = new FileInputStream("D://1.xml");
//为了防止乱码,指定文件输出的编码格式
InputStreamReader input = new InputStreamReader(fis, Charset.forName("GBK"));
Birthday b=(Birthday) stream.fromXML(input);
input.close();
System.out.println("person.name"+b.getPerson().getName());
System.out.println(".date:"+DateFormat.getDateInstance(DateFormat.FULL).format(
b.getDate().getTime()));
System.out.println(".gender:"+b.getGender());
}catch(Exception e2){
e2.printStackTrace();
}
}
}