开发手册 欢迎您!
软件开发者资料库

XStream - 流对象

XStream流对象 - 从简单和简单的步骤学习XStream库,从基本到高级概念,包括概述,环境设置,第一个应用程序,别名,注释,转换器,对象流,使用XStream编写JSON。

XStream提供了java.io.ObjectInputStream和java.io.ObjectOutputStream的替代实现,以便可以从XML序列化或反序列化对象流.当要处理大型对象集时,这一点特别有用,一次将一个对象保留在内存中.

语法:createObjectOutputStream()

ObjectOutputStream objectOutputStream = xstream.createObjectOutputStream(   new FileOutputStream("test.txt"));

语法:createObjectInputStream()

ObjectInputStream objectInputStream = xstream.createObjectInputStream(   new FileInputStream("test.txt"));

现在让我们在XStream中使用对象流测试代码.

在C中创建一个名为XStreamTester的java类文件:\> XStream_WORKSPACE \ com\it1352\ xstream.

文件:XStreamTester.java

package com.it1352.xstream;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.annotations.XStreamAlias;import com.thoughtworks.xstream.io.xml.StaxDriver;public class XStreamTester {   public static void main(String args[]) {         XStreamTester tester = new XStreamTester();      XStream xstream = new XStream(new StaxDriver());            xstream.autodetectAnnotations(true);            Student student1 = new Student("Mahesh","Parashar");      Student student2 = new Student("Suresh","Kalra");      Student student3 = new Student("Ramesh","Kumar");      Student student4 = new Student("Naresh","Sharma");            try {               ObjectOutputStream objectOutputStream = xstream.createObjectOutputStream(            new FileOutputStream("test.txt"));                  objectOutputStream.writeObject(student1);         objectOutputStream.writeObject(student2);         objectOutputStream.writeObject(student3);         objectOutputStream.writeObject(student4);         objectOutputStream.writeObject("Hello World");                  objectOutputStream.close();                  ObjectInputStream objectInputStream = xstream.createObjectInputStream(            new FileInputStream("test.txt"));                  Student student5 = (Student)objectInputStream.readObject();         Student student6 = (Student)objectInputStream.readObject();         Student student7 = (Student)objectInputStream.readObject();         Student student8 = (Student)objectInputStream.readObject();                  String text = (String)objectInputStream.readObject();                  System.out.println(student5);         System.out.println(student6);         System.out.println(student7);         System.out.println(student8);         System.out.println(text);            } catch (IOException e) {         e.printStackTrace();               } catch (ClassNotFoundException e) {         e.printStackTrace();      }   }}@XStreamAlias("student")class Student {   private String firstName;   private String lastName;      public Student(String firstName, String lastName) {      this.firstName = firstName;      this.lastName = lastName;   }   public String getFirstName() {      return firstName;   }   public String getLastName() {      return lastName;   }      public String toString() {      return "Student [ firstName: "+firstName+", lastName: "+ lastName+ " ]";   }}

验证结果

使用 javac编译类编译如下 :

C:\XStream_WORKSPACE\com\it1352\xstream>javac XStreamTester.java

现在运行XStreamTester查看结果 :

C:\XStream_WORKSPACE\com\it1352\xstream>java XStreamTester

验证输出如下 :

Student [ firstName: Mahesh, lastName: Parashar ]Student [ firstName: Suresh, lastName: Kalra ]Student [ firstName: Ramesh, lastName: Kumar ]Student [ firstName: Naresh, lastName: Sharma ]Hello World

查看test.txt的内容 C:\> XStream_WORKSPACE \ com\it1352\ xstream 文件夹.

         Mahesh      Parashar               Suresh      Kalra               Ramesh      Kumar               Naresh      Sharma      Hello World