Java tutorial
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)); } }