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.