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.
Создайте файл Java-класса с именем XStreamTester в C: \> XStream_WORKSPACE \ com \ tutorialspoint \ xstream.
Файл: XStreamTester.java
package com.tutorialspoint.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\tutorialspoint\xstream>javac XStreamTester.java
Теперь запустите XStreamTester, чтобы увидеть результат —
C:\XStream_WORKSPACE\com\tutorialspoint\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 \ tutorialspoint \ xstream .