Via Java Serialization you can stream your Java object to a sequence of byte and restore these objects from this stream of bytes. To make a Java object serializable you implement the
Certain system-level classes such as
import java.io.Serializable;
public class Person implements Serializable {
private String firstName;
private String lastName;
// stupid example for transient
transient private Thread myThread;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.myThread = new Thread();
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName
+ "]";
}
}
The following code example show you how you can serializable and de-serializable this object.
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) {
String filename = "time.ser";
Person p = new Person("Lars", "Vogel");
// Save the object to file
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = new FileOutputStream(filename);
out = new ObjectOutputStream(fos);
out.writeObject(p);
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
// Read the object from file
// Save the object to file
FileInputStream fis = null;
ObjectInputStream in = null;
try {
fis = new FileInputStream(filename);
in = new ObjectInputStream(fis);
p = (Person) in.readObject();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(p);
}
}
java.io.Serializable
interface. This is only a marker interface which tells the platform that the object is serializable. Certain system-level classes such as
Thread
, OutputStream
and its subclasses, and Socket
are not serializable. If you serializable class contains such objects, it must mark then as "transient". 2. Example
import java.io.Serializable;
public class Person implements Serializable {
private String firstName;
private String lastName;
// stupid example for transient
transient private Thread myThread;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.myThread = new Thread();
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName
+ "]";
}
}
The following code example show you how you can serializable and de-serializable this object.
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) {
String filename = "time.ser";
Person p = new Person("Lars", "Vogel");
// Save the object to file
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = new FileOutputStream(filename);
out = new ObjectOutputStream(fos);
out.writeObject(p);
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
// Read the object from file
// Save the object to file
FileInputStream fis = null;
ObjectInputStream in = null;
try {
fis = new FileInputStream(filename);
in = new ObjectInputStream(fis);
p = (Person) in.readObject();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(p);
}
}
No comments:
Post a Comment