
DataOutputStream testfile = new DataOutputStream(testf);
testfile.writeUTF(msg);
testfile.close();
System.out.println("Wrote " + filename);
} catch(Exception error) {
System.out.println("Failed to write " + filename); }
System.exit(0);
}}
If
the sample program is executed on a system that uses ISO-8859-1 as its native en-
coding, the first write effectively fails, though no exception is raised and no error mes-
sage is issued. The character U+263A cannot be represented in ISO-8859-1, so the
output routine might write a question mark, ?, instead. (This is questionable, but such
things happen.) The other ways work well, though you cannot directly view the file
contents on programs that support ISO-8859-1 only. The results are summarized in
Table 11-7, which shows the contents of the files by octets (in a big-endian computer).
Table 11-7. File output in Java: encoding of sample text “Aé
☺
”
Method Filename Content (as octets in hex) Comment
print test.txt 41 E9 3F ISO-8859-1, ☺ as ?
write testu.txt 41 C3 A9 E2 98 BA UTF-8
writeChars test16.txt 00 41 00 E9 26 3A UTF-16, no BOM
writeUTF test8.txt 00 06 41 C3 A9 E2 98 BA UTF-8 with octet count (00 06)
The methods for file input are analogous to output methods. We will here give just a
rather trivial example: a program that reads a UTF-8 encoded file and prints the (dec-
imal)
Unicode code numbers of the characters. The program uses the read function ...