Click here to watch in Youtube :
Click the below Image to Enlarge
Java Tutorial : Java IO (Java Super class not implements Externalizable | Java externalization) |
public class Person
{
private int age;
private double height;
private double weight;
public Person()
{
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public double getHeight()
{
return height;
}
public void setHeight(double height)
{
this.height = height;
}
public double getWeight()
{
return weight;
}
public void setWeight(double weight)
{
this.weight = weight;
}
}
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
public class Employee extends Person implements Externalizable
{
private int id;
private String name;
public Employee()
{
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@Override
public String toString()
{
return "Employee [getId()=" + getId() + ", getName()=" + getName()
+ ", getAge()=" + getAge() + ", getHeight()=" + getHeight()
+ ", getWeight()=" + getWeight() + "]";
}
@Override
public void writeExternal(ObjectOutput out) throws IOException
{
System.out.println("Inside writeExternal");
/*
* Since superclass does not implement
* externalizable, we need to serialize super class
* field in this class itself
*
* Person class[Super class] fields
*/
out.writeInt(super.getAge());
out.writeDouble(super.getHeight());
out.writeDouble(super.getWeight());
/* Employee class fields */
out.writeInt(id);
out.writeObject(name);
}
@Override
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException
{
System.out.println("Inside readExternal");
/*
* Since superclass does not implement
* externalizable, we need to deserialize super
* class field in this class itself.
*
* Person class[Super class] fields.
*/
super.setAge(in.readInt());
super.setHeight(in.readDouble());
super.setWeight(in.readDouble());
/* Employee class fields */
id = in.readInt();
name = (String) in.readObject();
}
}
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class ExternalizableWrite
{
public static void main(String[] args) throws FileNotFoundException,
IOException, ClassNotFoundException
{
ExternalizableWrite externalizableWrite = new ExternalizableWrite();
externalizableWrite.writeEmployeeObject();
}
private void writeEmployeeObject() throws FileNotFoundException,
IOException
{
FileOutputStream fileOutputStream = null;
ObjectOutputStream objectOutputStream = null;
//Serialize
try
{
fileOutputStream = new FileOutputStream("employee.ser");
objectOutputStream = new ObjectOutputStream(fileOutputStream);
Employee employee = new Employee();
employee.setId(101);
employee.setName("Peter");
employee.setAge(25);
employee.setHeight(4.7d);
employee.setWeight(60d);
System.out.println("Before Serializing.");
System.out.println(employee.toString());
/*
* Write the specified object to the
* ObjectOutputStream.
*/
objectOutputStream.writeObject(employee);
System.out
.println("Successfully written employee object to the file.\n");
}
finally
{
if (objectOutputStream != null)
{
/*
* Closing a ObjectOutputStream will also
* close the OutputStream instance to which
* the ObjectOutputStream is writing.
*/
objectOutputStream.close();
}
}
}
}
Before Serializing.
Employee [getId()=101, getName()=Peter, getAge()=25, getHeight()=4.7, getWeight()=60.0]
Inside writeExternal
Successfully written employee object to the file.
employee.ser
ExternalizableRead.java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
public class ExternalizableRead
{
public static void main(String[] args) throws FileNotFoundException,
IOException, ClassNotFoundException
{
ExternalizableRead externalizableRead = new ExternalizableRead();
externalizableRead.readEmployeeObject();
}
private void readEmployeeObject() throws IOException,
FileNotFoundException, ClassNotFoundException
{
FileInputStream fileInputStream = null;
ObjectInputStream objectInputStream = null;
//Deserialize
try
{
fileInputStream = new FileInputStream("employee.ser");
objectInputStream = new ObjectInputStream(fileInputStream);
/*
* Read an object from the ObjectInputStream.
*/
Employee employee = (Employee) objectInputStream.readObject();
System.out
.println("Successfully read employee object from the file.\n");
System.out.println("After DeSerializing.");
System.out.println(employee.toString());
}
finally
{
if (objectInputStream != null)
{
/*
* Closing a ObjectInputStream will also
* close the InputStream instance from which
* the ObjectInputStream is reading.
*/
objectInputStream.close();
}
}
}
}
Inside readExternal
Successfully read employee object from the file.
After DeSerializing.
Employee [getId()=101, getName()=Peter, getAge()=25, getHeight()=4.7, getWeight()=60.0]
No comments:
Post a Comment