XStream提供java.io.ObjectInputStream和java.io.ObjectOutputStream替代实现,使对象流可以被序列化或XML序列化。当大对象集要被处理,保持在存储器中的一个对象,这是特别有用的。
将对象写进文件
ObjectOutputStream objectOutputStream = xstream.createObjectOutputStream(newFileOutputStream("D:\\test.txt"));
读取文件内容
ObjectInputStream objectInputStream = xstream.createObjectInputStream(new FileInputStream("test.txt"));
package com.xstream.demo1;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.xstream.vo1.Address;
public class XstreamObjectStreamDemo {
public static void main(String[] args) {
XStream xstream = new XStream(new DomDriver());
xstream.autodetectAnnotations(true);
Address a1 = new Address("t1","p1");
Address a2 = new Address("t2","p2");
Address a3 = new Address("t3","p3");
Address a4 = new Address("t4","p4");
try {
ObjectOutputStream objectOutputStream = xstream.createObjectOutputStream(new FileOutputStream("D:\\test.txt"));
objectOutputStream.writeObject(a1);
objectOutputStream.writeObject(a2);
objectOutputStream.writeObject(a3);
objectOutputStream.writeObject(a4);
objectOutputStream.writeObject("Hello World");
objectOutputStream.close();
ObjectInputStream objectInputStream = xstream.createObjectInputStream(new FileInputStream("test.txt"));
Address a5 = (Address)objectInputStream.readObject();
Address a6 = (Address)objectInputStream.readObject();
Address a7 = (Address)objectInputStream.readObject();
Address a8 = (Address)objectInputStream.readObject();
String text = (String)objectInputStream.readObject();
System.out.println(a5);
System.out.println(a6);
System.out.println(a7);
System.out.println(a8);
System.out.println(text);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}