![]() |
![]() |
![]() |
![]() |
![]() |
|
You readily can adapt the program in
Segment 495 to deal with both numbers and strings. In the
following, the value of the nextToken method is assigned to a local
variable, next, which is then compared with the TT_NUMBER and
TT_WORD instance variables. In the event that the value returned by
the nextToken method is the value of the TT_WORD instance
variable, the token is ignored.
A switch statement, of the sort you
learned about in Chapter 26, responds appropriately
to the value:
import java.io.*;
public class Demonstrate {
public static void main(String argv[]) throws IOException {
FileInputStream stream = new FileInputStream("input.data");
InputStreamReader reader = new InputStreamReader(stream);
StreamTokenizer tokens = new StreamTokenizer(reader);
int next = 0;
while ((next = tokens.nextToken()) != tokens.TT_EOF) {
switch (next) {
case StreamTokenizer.TT_WORD: break;
case StreamTokenizer.TT_NUMBER:
int x = (int) tokens.nval;
tokens.nextToken(); int y = (int) tokens.nval;
tokens.nextToken(); int z = (int) tokens.nval;
Movie m = new Movie(x, y, z);
System.out.println("Rating: " + m.rating());
break;
}
}
stream.close();
}
}