import java.io. * ;
public class Ser {
public static void main(String args[]) {
try {
John myObj = new John("Sachin", "Cricket");
System.out.println(myObj);
FileOutputStream fos = new FileOutputStream("FileName");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myObj);
oos.flush();
oos.close();
} catch (Exception e) {
System.out.println("Expection" + e);
System.exit(0);
}
try {
John myObj2;
FileInputStream fis = new FileInputStream("FileName");
ObjectInputStream ois = new ObjectInputStream(fis);
myObj2 = (John) ois.readObject();
ois.close();
System.out.println("New Object" + myObj2);
} catch (Exception e) {
System.out.println("Expection" + e);
System.exit(0);
}
}
}
class John implements Serializable {
private String name;
private String department;
public John(String name, String department) {
this.name = name;
this.department = department;
}
public String toString() {
return "Name" + name + " " + "Department" + department;
}
}
I have a few questions in the above example.
- When to use flush method and why do we use it?
- What does close method carry a score here?
myObj2 = (John) ois.readObject(); ... please correct me if i am wrong, i am reading the file object and storing into another object and typecasting the file object.
- What are the alternatives of Serialization or persisting the data in Java. I don't want the data to get into file as byte stream.
Best Answer-推荐答案 strong>
- When to use flush method and why do we use it?
This is used when there needs to be synchronous sending
For example you have a duplex (2-way) connection and you just sent a message and now need to wait for the reply on it, without flush a buffered outputstream might hold it until the buffer fills up (deadlock)
myObj2 = (John) ois.readObject(); Please correct me if I am wrong, I am reading the file object and storing into another object and typecasting the file object.
WRONG! You read some data from the stream typecast it into a John (which will throw if the object read wasn't a John)
- What are the alternatives of Serialization or persisting the data in Java. I don't want the data to get into file as byte stream.
You can write it as text (write out the fields as text on a line) and provide a method to parse it into an object
|