Java Reference
In-Depth Information
Self-Test Exercises
15. One difference between the try blocks in Display 10.1 and Display 10.7 is that
the try block in Display 10.1 encloses only the opening of the file, while the try
block in Display 10.7 encloses most of the action in the program. Why is the try
block in Display 10.7 larger than the one in Display 10.1?
16. Might the following throw an exception that needs to be caught or declared in a
throws clause?
BufferedReader inputStream =
new BufferedReader( new FileReader("morestuff2.txt"));
(The stream inputStream would be used to read from the text file
morestuff2.txt .)
TIP: Reading Numbers with BufferedReader
Unlike the Scanner class, the class BufferedReader has no methods to read a number
from a text file. You must write your code to read the number as a string and convert
the string to a value of a numeric type, such as int or double . To read a single number
on a line by itself, read it using the method readLine and then use Integer.parseInt ,
Double.parseDouble , or some similar method to convert the string read to a number. If
there are multiple numbers on a single line, read the line using readLine and then use the
StringTokenizer class to decompose the string into tokens. Then use Integer.parseInt
or a similar method to convert each token to a number.
Integer.parseInt , Double.parseDouble , and similar methods to convert strings to
numbers are explained in Chapter 5 in the subsection entitled “Wrapper Classes.” The
StringTokenizer class is discussed in Chapter 4 in the starred subsection entitled “The
StringTokenizer Class.”
Testing for the End of a Text File with BufferedReader
When using the class BufferedReader , if your program tries to read beyond the end of
the file with either of the methods readLine or read , then the method returns a special
value to signal that the end of the file has been reached. When readLine tries to read
beyond the end of a file, it returns the value null . Thus, your program can test for the
end of the file by testing to see if readLine returns null . This technique is illustrated
in Display 10.9. When the method read tries to read beyond the end of a file, it
returns the value 1 . Because the int value corresponding to each ordinary character is
positive, this can be used to test for the end of a file.
Search WWH ::




Custom Search