Using Streams

Streams in Java are used to perform input and output of 8-bit bytes. This tutorial will teach you how to use streams to read and write data.

Reading Data Using InputStream

The InputStream class is used to read data from an input stream:


import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class Main {
    public static void main(String[] args) {
        try (InputStream inputStream = new FileInputStream("example.txt")) {
            int data;
            while ((data = inputStream.read()) != -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
      

Writing Data Using OutputStream

The OutputStream class is used to write data to an output stream:


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class Main {
    public static void main(String[] args) {
        try (OutputStream outputStream = new FileOutputStream("example.txt")) {
            String data = "Hello, World!";
            outputStream.write(data.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
      

Using Buffered Streams

Buffered streams can be used to optimize the performance of input and output operations:


import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("example.txt"))) {
            int data;
            while ((data = bufferedInputStream.read()) != -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
      

Continue exploring our intermediate tutorials to learn more about Java programming.

Scroll to Top