OutputStreamDemo.java Source code

Java tutorial

Introduction

Here is the source code for OutputStreamDemo.java

Source

import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;

// Buffering may speed up writes to a FileOutputStream, but not for 
// a FileWriter, because a FileWriter is
// an OutputStreamWriter, which already uses the buffering.
public class OutputStreamDemo {
    public static void main(String[] args) throws IOException {
        OutputStream os1 = new FileOutputStream("tmp1.dat");
        writeints("Unbuffered: ", 1000000, os1);
        OutputStream os2 = new BufferedOutputStream(new FileOutputStream("tmp2.dat"));
        writeints("Buffered:   ", 1000000, os2);
        Writer wr1 = new FileWriter("tmp1.dat");
        writeints("Unbuffered: ", 1000000, wr1);
        Writer wr2 = new BufferedWriter(new FileWriter("tmp2.dat"));
        writeints("Buffered:   ", 1000000, wr2);
    }

    static void writeints(String msg, int count, OutputStream os) throws IOException {
        long currentTime = System.currentTimeMillis();
        for (int i = 0; i < count; i++)
            os.write(i & 255);
        os.close();
        System.out.println(msg + Long.toString(System.currentTimeMillis() - currentTime));
    }

    static void writeints(String msg, int count, Writer os) throws IOException {
        long currentTime = System.currentTimeMillis();
        for (int i = 0; i < count; i++)
            os.write(i & 255);
        os.close();
        System.out.println(msg + Long.toString(System.currentTimeMillis() - currentTime));
    }

}