Java Reference
In-Depth Information
[Note that serial fi les are often mis-named
sequential
fi les, even by some authors
who should know better. A sequential fi le is a serial fi le in which the data are stored
in some particular order (e.g., in account number order). A sequential fi le is a serial
fi le, but a serial fi le is not necessarily a sequential fi le.]
Serial fi les have a number of distinct disadvantages (as will be pointed out in 4.2),
as a consequence of which they are often used only to hold relatively small amounts
of data or for temporary storage, prior to processing, but such fi les are simpler to
handle and are in quite common usage.
The internal structure of a serial fi le can be either
binary
(i.e., a compact format
determined by the architecture of the particular computers on which the fi le is to be
used) or
text
(human-readable format, almost invariably using ASCII). The former
stores data more effi ciently, but the latter is much more convenient for human
beings. Coverage here will be devoted exclusively to
text
fi les.
Before Java SE 5, a text fi le required a
FileReader
object for input and a
FileWriter
object for output. As of Java 5, we can often use just a
File
object for
either input or output (though not for both at the same time). The
File
constructor
takes a
String
argument that specifi es the name of the fi le as it appears in a directory
listing.
Examples
(i) File inputFile = new File("accounts.txt");
(ii) String fi leName = "dataFile.txt";
....................................
File outputFile = new File(fi leName);
N.B. If a string literal is used (e.g.,
"results.txt"
), the full pathname may
be included, but double backslashes are then required in place of single backslashes
(since a single backslash would indicate an escape sequence representing one of the
invisible characters, such as tab). For example:
File resultsFile = new File("c:\\data\\results.txt");
Incidentally, we can (of course) call our fi les anything we like, but we should
follow good programming practice and give them meaningful names. In particular,
it is common practice to denote text data fi les by a suffi x of
.txt
(for 'text').
Class
File
is contained within package
java.io
, so this package should be
imported into any fi le-handling program. Before Java SE 5, it was necessary to wrap
a
BufferedReader
object around a
FileReader
object in order to read from a fi le.
Likewise, it was necessary to wrap a
PrintWriter
object around a
FileWriter
object
in order to write to the fi le. Now we can wrap a
Scanner
object around a
File
object
for input and a
PrintWriter
object around a
File
object for output. (The
PrintWriter
class is also within package
java.io
.)
Examples
(i) Scanner input =
new Scanner(new File("inFile.txt"));
Search WWH ::
Custom Search