Opening a File by Name
Problem
The Java documentation doesn’t have methods for
opening
files. How do I connect a filename on
disk with a Reader
, Writer
, or
Stream
?
Solution
Construct a
FileReader
, a FileWriter
, a
FileInputStream
, or a
FileOutputStream
.
Discussion
The action of constructing a FileReader
,
FileWriter
, FileInputStream
, or
FileOutputStream
corresponds to the
“open” operation in most I/O packages. There is no
explicit open operation, perhaps as a kind of rhetorical flourish of
the Java API’s object-oriented design. So to read a text file,
you’d create, in order, a FileReader
and a
BufferedReader
. To
write a file a byte at a
time, you’d create a FileOutputStream
, and
probably a BufferedOutputStream
for efficiency:
// OpenFileByName.java BufferedReader is = new BufferedReader(new FileReader("myFile.txt")); BufferedOutputStream bytesOut = new BufferedOutputStream( new FileOutputStream("bytes.dat")); ... bytesOut.close( );
Remember that you will need to handle IOException
around these calls.
Get Java Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.