XStream provides alternative implementations of
java.io.ObjectInputStream and java.io.ObjectOutputStream so that streams
of objects can be serialized or de-serialized from XML. This is
particularly useful when large sets of objects are to be processed,
keeping one object in memory at a time.
Create a java class file named XStreamTester in C:\>XStream_WORKSPACE\com\tutorialspoint\xstream.
File: XStreamTester.java
Compile the classes using javac compiler as follows:
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_WORKSPACE\com\tutorialspoint\xstream.
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.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+ " ]"; } }Verify the Result
Compile the classes using javac compiler as follows:
C:\XStream_WORKSPACE\com\tutorialspoint\xstream>javac XStreamTester.javaNow run the XStreamTester to see the result:
C:\XStream_WORKSPACE\com\tutorialspoint\xstream>java XStreamTesterVerify 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 WorldLook at the content of the test.txt present at C:\>XStream_WORKSPACE\com\tutorialspoint\xstream 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>
No comments:
Post a Comment