Does FileOutputStream
itself provide a way to write an int
to a disk?
No
Does DataOutputStream
provide a way to write an int
to a stream?
Yes
import java.io.*; class WriteInts { public static void main ( String[] args ) { String fileName = "intData.dat" ; int value0 = 0, value1 = 1, value255 = 255, valueM1 = -1; try { DataOutputStream out = new DataOutputStream( new FileOutputStream( fileName ) ); out.writeInt( value0 ); // The writeInt method of DataOutputStream out.writeInt( value1 ); // writes 4-byte ints to the stream out.writeInt( value255 ); out.writeInt( valueM1 ); out.close(); // might throw IOException } catch ( IOException iox ) { System.out.println("Problem writing " + fileName ); } } }
In this 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.
More DataOutputStream
methods are described
below.
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.
Note:
The exact bit pattern of each int
is written to
the disk file.
Nothing is translated into characters.
The program writes four 32-bit int
values.
How big is the disk file?