XStream Tutorial
XStream Useful Resources
Selected Reading
- XStream - JSON
- XStream - Object Streams
- XStream - Converters
- XStream - Annotations
- XStream - Aliasing
- XStream - First Application
- XStream - Environment Setup
- XStream - Overview
- XStream - Home
XStream Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
XStream - Object Streams
XStream - Object Streams
XStream provides alternative implementations of java.io.ObjectInputStream and java.io.ObjectOutputStream so that streams of objects can be seriapzed or deseriapzed from XML. This is particularly useful when large sets of objects are to be processed, keeping one object in memory at a time.
Syntax: createObjectOutputStream()
ObjectOutputStream objectOutputStream = xstream.createObjectOutputStream( new FileOutputStream("test.txt"));
Syntax: createObjectInputStream()
ObjectInputStream objectInputStream = xstream.createObjectInputStream( new FileInputStream("test.txt"));
Let us now test the code with object streams in XStream.
Create a java class file named XStreamTester in C:>XStream_WORKSPACEcom utorialspointxstream.
File: 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.XStreamApas; import com.thoughtworks.xstream.io.xml.StaxDriver; pubpc class XStreamTester { pubpc 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(); } } } @XStreamApas("student") class Student { private String firstName; private String lastName; pubpc Student(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } pubpc String getFirstName() { return firstName; } pubpc String getLastName() { return lastName; } pubpc String toString() { return "Student [ firstName: "+firstName+", lastName: "+ lastName+ " ]"; } }
Verify the Result
Compile the classes using javac compiler as follows −
C:XStream_WORKSPACEcom utorialspointxstream>javac XStreamTester.java
Now run the XStreamTester to see the result −
C:XStream_WORKSPACEcom utorialspointxstream>java XStreamTester
Verify the output as follows −
Student [ firstName: Mahesh, lastName: Parashar ] Student [ firstName: Suresh, lastName: Kalra ] Student [ firstName: Ramesh, lastName: Kumar ] Student [ firstName: Naresh, lastName: Sharma ] Hello World
Look at the content of the test.txt present at C:>XStream_WORKSPACEcom utorialspointxstream folder.
<?xml version = "1.0" ?> <object-stream> <student> <firstName>Mahesh</firstName> <lastName>Parashar</lastName> </student> <student> <firstName>Suresh</firstName> <lastName>Kalra</lastName> </student> <student> <firstName>Ramesh</firstName> <lastName>Kumar</lastName> </student> <student> <firstName>Naresh</firstName> <lastName>Sharma</lastName> </student> <string>Hello World</string> </object-stream>Advertisements