Last Updated : 12 Sep, 2023
An ObjectOutputStream writes primitive data types and graphs of Java objects to an OutputStream. The objects can be read (reconstituted) using an ObjectInputStream. Persistent storage of objects can be accomplished by using a file for the stream.
Constructors :
Methods:
Syntax :protected void annotateClass(Class cl) throws IOException Parameters: cl - the class to annotate custom data for Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream methods
//illustrating annotateClass(Class<?> cl) method
import java.io.*;
class ObjectOutputStreamDemo extends ObjectOutputStream
{
public ObjectOutputStreamDemo(OutputStream out) throws IOException
{
super(out);
}
public static void main(String[] args) throws IOException,
ClassNotFoundException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStreamDemo oot = new ObjectOutputStreamDemo(fout);
Character c = 'A';
//illustrating annotateClass(Class<?> cl) method
oot.annotateClass(Character.class);
//Write the specified object to the ObjectOutputStream
oot.writeObject(c);
//flushing the stream
oot.flush();
//closing the stream
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
System.out.print(oit.readObject());
oit.close();
}
}
Output :
A
Syntax :protected void annotateProxyClass(Class cl) throws IOException Parameters: cl - the proxy class to annotate custom data for Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating annotateProxyClass(Class<?> cl) method
import java.io.*;
class ObjectOutputStreamDemo extends ObjectOutputStream
{
public ObjectOutputStreamDemo(OutputStream out) throws IOException
{
super(out);
}
public static void main(String[] args) throws IOException,
ClassNotFoundException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStreamDemo oot = new ObjectOutputStreamDemo(fout);
Character c = 'A';
//illustrating annotateProxyClass(Class<?> cl) method
oot.annotateProxyClass(Character.class);
//Write the specified object to the ObjectOutputStream
oot.writeObject(c);
//flushing
oot.flush();
//closing the stream
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
System.out.print(oit.readObject());
oit.close();
}
}
Output :
A
Syntax :public void close() throws IOException Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating close() method
import java.io.*;
class ObjectOutputStreamDemo
{
public static void main(String[] args) throws IOException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStream oot = new ObjectOutputStream(fout);
oot.write(3);
//illustrating close()
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
System.out.println(oit.read());
oit.close();
}
}
3
Syntax :public void defaultWriteObject() throws IOException Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating defaultWriteObject() method
import java.io.*;
class ObjectOutputStreamDemo
{
public static void main(String[] arg) throws IOException,
ClassNotFoundException
{
Character a = 'A';
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStream oot = new ObjectOutputStream(fout);
oot.writeChar(a);
oot.flush();
// close the stream
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
// reading the character
System.out.println(oit.readChar());
}
}
class demo implements Serializable
{
String s = "GeeksfoGeeks";
private void writeObject(ObjectOutputStream out)
throws IOException, ClassNotFoundException
{
//demonstrating defaultWriteObject()
out.defaultWriteObject();
}
}
}
Output :
A
Syntax :protected void drain() throws IOException Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream methods
//illustrating drain() method
import java.io.*;
class ObjectOutputStreamDemo extends ObjectOutputStream
{
public ObjectOutputStreamDemo(OutputStream out) throws IOException
{
super(out);
}
public static void main(String[] arg) throws IOException,
ClassNotFoundException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStream oot = new ObjectOutputStream(fout);
ObjectOutputStreamDemo obj = new ObjectOutputStreamDemo(oot);
//illustrating drain()
obj.drain();
//closing the underlying stream
oot.close();
fout.close();
}
}
Syntax :protected boolean enableReplaceObject(boolean enable) throws SecurityException Parameters: enable - boolean parameter to enable replacement of objects Returns: the previous setting before this method was invoked Throws: SecurityExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating enableReplaceObject method
import java.io.*;
class ObjectOutputStreamDemo extends ObjectOutputStream
{
public ObjectOutputStreamDemo(OutputStream out) throws IOException
{
super(out);
}
public static void main(String[] args) throws IOException,
ClassNotFoundException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStreamDemo oot = new ObjectOutputStreamDemo(fout);
Character c = 'A';
//illustrating enableReplaceObject method
System.out.println(oot.enableReplaceObject(true));
//Write the specified object to the ObjectOutputStream
oot.writeObject(c);
//flushing
oot.flush();
//closing the stream
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
System.out.print(oit.readObject());
oit.close();
}
}
Output :
false A
Syntax :public ObjectOutputStream.PutField putFields() throws IOException Returns: an instance of the class Putfield that holds the serializable fields Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating PutField method
import java.io.*;
class ObjectOutputStreamDemo
{
public static void main(String[] arg) throws IOException,
ClassNotFoundException
{
Character a ='A';
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStream oot = new ObjectOutputStream(fout);
oot.writeChar(a);
oot.flush();
// close the stream
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
// reading the character
System.out.println(oit.readChar());
}
}
class demo implements Serializable
{
private void writeObject(ObjectOutputStream out)
throws IOException, ClassNotFoundException
{
// Retrieve the object used to buffer
// persistent fields to be written to the stream
ObjectOutputStream.PutField fields = out.putFields();
}
}
Output :
A
Syntax :protected Object replaceObject(Object obj) throws IOException Parameters: obj - the object to be replaced Returns: the alternate object that replaced the specified one Throws: IOExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating replaceObject method
import java.io.*;
class ObjectOutputStreamDemo extends ObjectOutputStream
{
public ObjectOutputStreamDemo(OutputStream out) throws IOException
{
super(out);
}
public static void main(String[] args) throws IOException,
ClassNotFoundException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStreamDemo oot = new ObjectOutputStreamDemo(fout);
String a = "forGeeks";
String b = "Geeks";
//Write the specified object to the ObjectOutputStream
oot.writeObject(a);
//flushing the stream
oot.flush();
oot.enableReplaceObject(true);
//illustrating replaceObject
System.out.print(oot.replaceObject(b));
//closing the stream
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
System.out.print(oit.readObject());
oit.close();
}
}
Output :
GeeksforGeeks
Syntax :public void useProtocolVersion(int version) throws IOException Parameters: version - use ProtocolVersion from java.io.ObjectStreamConstants. Throws: IllegalStateException IllegalArgumentException IOExceptionJava
//Java program demonstrating ObjectOutputStream
//illustrating useProtocolVersion() method
import java.io.*;
class ObjectOutputStreamDemo extends ObjectOutputStream
{
public ObjectOutputStreamDemo(OutputStream out) throws IOException
{
super(out);
}
public static void main(String[] args) throws IOException,
ClassNotFoundException
{
FileOutputStream fout = new FileOutputStream("file.txt");
ObjectOutputStreamDemo oot = new ObjectOutputStreamDemo(fout);
String a = "forGeeks";
String b = "Geeks";
//illustrating useProtocolVersion()
oot.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2);
//Write the specified object to the ObjectOutputStream
oot.writeObject(b);
oot.writeObject(a);
//flushing the stream
oot.flush();
oot.close();
FileInputStream fin = new FileInputStream("file.txt");
ObjectInputStream oit = new ObjectInputStream(fin);
System.out.print(oit.readObject());
System.out.print(oit.readObject());
oit.close();
}
}
Output :
GeeksforGeeks
Next Article : Java.io.ObjectOutputStream Class in Java | Set 2
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4