Java Reference
In-Depth Information
Display 10.8
Some Methods of the Class
BufferedReader
(part 2 of 2)
public int
read()
throws
IOException
Reads a single character from the input stream and returns that character as an
int
value. If the read
goes beyond the end of the file, then
−
1
is returned. Note that the value is returned as an
int
. To
obtain a
char
, you must perform a type cast on the value returned. The end of a file is signaled by
returning
−
1
. (All of the “real” characters return a positive integer.)
public long
skip(
long
n)
throws
IOException
Skips
n
characters.
public void
close()
throws
IOException
Closes the stream's connection to a file.
The method
read
reads a single character. But note that
read
returns a value of type
int
that corresponds to the character read; it does not return the character itself. Thus,
to get the character, you must use a type cast, as in
read
method
char
next = (
char
)(inputStream.read());
If
inputStream
is in the class
BufferedReader
and is connected to a text file, this will
set
next
equal to the first character in the file that has not yet been read.
Notice that the program in Display 10.7 catches two kinds of exceptions:
FileNot-
FoundException
and
IOException
. An attempt to open the file may throw a
FileNot-
FoundException
, and any of the invocations of
inputStream.readLine()
may throw an
IOException
. Because
FileNotFoundException
is a kind of
IOException
, you could use
only the
catch
block for
IOException
. However, if you were to do this, then you would
get less information if an exception were thrown. If you use only one
catch
block and an
exception is thrown, you will not know if the problem occurred when opening the file or
when reading from the file after it was opened.
Self-Test Exercises
12. Write some code that will create a stream named
fileIn
that is a member of the
class
BufferedReader
and that connects the stream to a text file named
joe
so
that your program can read input from the text file
joe
.
13. What is the type of a value returned by the method
readLine
in the class
BufferedReader
? What is the type of a value returned by the method
read
in the
class
BufferedReader
?
14. Might the methods
read
and
readLine
in the class
BufferedReader
throw an
exception? If so, what type of exception?
(continued)