Java Reference
In-Depth Information
Display 10.3
Reading Input from a Text File Using Scanner (part 2 of 2)
Screen Output
I will read three numbers and a line
of text from the file morestuff.txt.
The three numbers read from the file are:
1, 2, and 3
The line read from the file is:
Eat my shorts.
Testing for the End of a Text File with Scanner
When using the class Scanner , if your program tries to read beyond the end of the
file with any of the input methods, such as nextInt or nextLine , then the method
throws an exception. If all goes well and there are no problems, such as using nextInt
when the input is not a correctly formed int , then the exception thrown will be
NoSuchElementException . This throwing of a NoSuchElementException can be
used to signal the end of input. However, there is a more robust way of testing for
the end of input from a text file. Each of the input methods (such as nextInt and
nextLine ) has a corresponding method (such hasNextInt and hasNextLine ) that
checks to see if there is any more well-formed input of the appropriate type. The nice
thing about these methods is that they report when there is not a suitable next token
for any reason; they do not check only for the end of a file. For example, hasNextInt
returns false if there is no more file input of any kind or if the next token is not a
well-formed int value. It returns true if there is a well-formed int as the next token.
A sample program that illustrates the use of hasNextLine to test for the end of input
is given in Display 10.4. A sample program that illustrates the use of hasNextInt to
test for the end of input is given in Display 10.5. A summary of some of the methods
in the Scanner class is given in Display 10.6 .
Checking for the End of a Text File with Scanner
You can check for the end of input with methods such as hasNextInt , hasNextLine , and
so forth.
 
 
Search WWH ::




Custom Search