Java DataInputStream


The DataInputStream is used in the context of DataOutputStream and can be used to read primitives.

Following is the constructor to create an InputStream

InputStream in = new DataInputStream(InputStream in);

Once you have the DataInputStream object in hand, then there is a list of helper methods, which can be used to read the stream or to do other operations on the stream.

Sr.No.Method & Description

public final int read(byte[] r, int off, int len)throws IOException

Reads up to len bytes of data from the input stream into an array of bytes. Returns the total number of bytes read into the buffer otherwise -1 if it is the end of the file.


Public final int read(byte [] b)throws IOException

Reads some bytes from the inputstream and stores in into the byte array. Returns the total number of bytes read into the buffer otherwise -1 if it is the end of the file.


(a) public final Boolean readBooolean()throws IOException

(b) public final byte readByte()throws IOException

(c) public final short readShort()throws IOException

(d) public final Int readInt()throws IOException

These methods will read the bytes from the contained InputStream. Returns the next two bytes of the InputStream as the specific primitive type.


public String readLine() throws IOException

Reads the next line of text from the input stream. It reads successive bytes, converting each byte separately into a character until it encounters a line terminator or end of file; the characters read are then returned as a String.


Following is an example to demonstrate DataInputStream and DataOutputStream. This example reads 5 lines given in a file test.txt and converts those lines into capital letters and finally copies them into another file test1.txt.

import java.io.*;
public class DataInput_Stream {

   public static void main(String args[])throws IOException {

      // writing string to a file encoded as modified UTF-8
      DataOutputStream dataOut = new DataOutputStream(new FileOutputStream("E:\\file.txt"));

      // Reading data from the same file
      DataInputStream dataIn = new DataInputStream(new FileInputStream("E:\\file.txt"));

      while(dataIn.available()>0) {
         String k = dataIn.readUTF();
         System.out.print(k+" ");

Following is the sample run of the above program:



Here at Intellinuts, we have created a complete Java tutorial for Beginners to get started in Java.