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));
}
}
Related examples in the same category