ptg7068951
Writing Data to a Stream 291
. Call write()with a byte array as its only argument to write all the
array’s bytes to the stream.
. Specify three arguments to the write(byte[], int, int)method: a
byte array, an integer representing the first element of the array to
write to the stream, and the number of bytes to write.
The following statement creates a byte array with 10 bytes and writes the
last 5 to an output stream:
File dat = new File(“data.dat”);
FileOutputStream datStream = new FileOutputStream(dat);
byte[] data = new byte[] { 5, 12, 4, 13, 3, 15, 2, 17, 1, 18 };
datStream.write(data, 5, 5);
When writing bytes to a stream, you can convert text to an array of bytes
by calling the Stringobject’s getBytes()method, as in this example:
String name = “Puddin N. Tane”;
byte[] nameBytes = name.getBytes();
Afteryou have finished writing bytes to a stream, you close it by calling
the stream’s close()method.
The next project you write is a simple application, ConfigWriter, that
saves several lines of text to a file by writing bytes to a file output stream.
Create an empty Java file of that name and enter the text from Listing 20.3
into the source editor.
LISTING 20.3 The Full Text of ConfigWriter.java
1: importjava.io.*;
2:
3: classConfigWriter {
4: String newline = System.getProperty(“line.separator”);
5:
6: ConfigWriter() {
7: try {
8: File file = new File(“program.properties”);
9: FileOutputStream fileStream = new FileOutputStream(file);
10: write(fileStream, “username=max”);
11: write(fileStream, “score=12550”);
12: write(fileStream, “level=5”);
13: } catch(IOException ioe) {
14: System.out.println(“Could not write file”);
15: }
16: }
17:
18: voidwrite(FileOutputStream stream, String output)
19: throwsIOException {