Java Binary Input and Output

Java Binary Input and Output:

Java provides two types of streams to address binary input and output operations.

Data Streams:
  • Data stream API supports binary input/output of Java Primitive data types (boolean, char, byte, short, int, long, float, and double) and String values. 

  • Java provides two important interface for Data Streams – DataInput & DataOutput.  And the classes implementing these interfaces are – DataInputStream & DataOutputStream respectively.

Data type                  Output Method                                    Input Method

double                  DataOutputStream.writeDouble            DataInputStream.readDouble
int                         DataOutputStream.writeInt                   DataInputStream.readInt
String                    DataOutputStream.writeUTF               DataInputStream.readUTF

  • DataOutputStream or DataInputStream can only be created as a wrapper for an existing byte stream object.

Sample Code snippet to use above described methods:

  • In each write operation on DataOutputStream, data will be serialized into binary format and in each read operation, data is being de-serialized from binary format.

  • DataStreams detects an end-of-file condition by catching EOFException, instead of testing for an invalid return value.

Object Streams:
  • Similar to Data Streams, Object streams support binary I/O of objects. All these classes implement Serializable interface.

  • ObjectInput and ObjectOutput interaces are sub interfaces of DataInput and DataOutput interfaces respectively.

  • Basic implementations of above two interfaces are – ObjectInputStream & ObjectOutputStream respectively.

  • An object stream can contain a mixture of primitive and object values.

 Sample Code snippet using writeObject() and readObject() methods.

About Siva

Senior Hadoop developer with 4 years of experience in designing and architecture solutions for the Big Data domain and has been involved with several complex engagements. Technical strengths include Hadoop, YARN, Mapreduce, Hive, Sqoop, Flume, Pig, HBase, Phoenix, Oozie, Falcon, Kafka, Storm, Spark, MySQL and Java.

Leave a comment

Your email address will not be published. Required fields are marked *

Review Comments
default image

I have attended Siva’s Spark and Scala training. He is good in presentation skills and explaining technical concepts easily to everyone in the group. He is having excellent real time experience and provided enough use cases to understand each concepts. Duration of the course and time management is awesome. Happy that I found a right person on time to learn Spark. Thanks Siva!!!

Dharmeswaran ETL / Hadoop Developer Spark Nov 2016 September 21, 2017