Mega Code Archive

 
Categories / Java / File Input Output
 

Output Buffering

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