A good answer might be:

A   BufferedOutputStream   buffers output data for greater efficiency.

Example Program

We will get back to BufferedOutputStream in a while. For now, look at the example program. The FileOutputStream constructor opens the file "intData.dat" for writing. A new file is created; if an old file has the same name it will be deleted. Then a DataOutputStream is connected to the FileOutputStream.

DataOutputStream has methods for writing primitive data to a output stream. The writeInt() method writes the four bytes of an int datatype to the stream.

import java.io.*;
class WriteInts

 public static void main ( String[] args ) 
   String fileName = "intData.dat" ;

   int value0   =   0, value1  = 1, 
       value255 = 255, valueM1 = -1;

     DataOutputStream out = new DataOutputStream(
         new FileOutputStream( fileName  ) );

     out.writeInt( value0 );
     out.writeInt( value1 );
     out.writeInt( value255 );
     out.writeInt( valueM1 );
   catch ( IOException iox )
     System.out.println("Problem writing " + fileName );

The program writes four integers to the output stream and then closes the stream. Always close an output stream to ensure that the operating system actually writes the data.


The program wrote four 32-bit int values. How big is the disk file?