FileDocCategorySizeDatePackage
ScanStreamTok.javaAPI DocExample1543Mon Feb 16 18:17:54 GMT 2004None

ScanStreamTok.java

import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StreamTokenizer;

/**
 * ScanStreamTok - show scanning a file with StringTokenizer.
 *
 * @author	Ian Darwin, http://www.darwinsys.com/
 * @version	$Id: ScanStreamTok.java,v 1.6 2004/02/17 00:17:54 ian Exp $
 */
public class ScanStreamTok {
	protected  StreamTokenizer tf;

	public static void main(String[] av) throws IOException {
		if (av.length == 0)
			new ScanStreamTok(
				new InputStreamReader(System.in)).process();
		else 
			for (int i=0; i<av.length; i++)
				new ScanStreamTok(av[i]).process();
	}

	/** Construct a file scanner by name */
	public ScanStreamTok(String fileName) throws IOException {
		tf = new StreamTokenizer(new FileReader(fileName));
	}

	/** Construct a file scanner by existing Reader */
	public ScanStreamTok(Reader rdr) throws IOException {
		tf = new StreamTokenizer(rdr);
	}

	protected void process() throws IOException {
		String s = null;
		int i;

		while ((i = tf.nextToken()) != StreamTokenizer.TT_EOF) {
			switch(i) {
			case StreamTokenizer.TT_EOF:
				System.out.println("End of file");
				break;
			case StreamTokenizer.TT_EOL:
				System.out.println("End of line");
				break;
			case StreamTokenizer.TT_NUMBER:
				System.out.println("Number " + tf.nval);
				break;
			case StreamTokenizer.TT_WORD:
				System.out.println("Word, length " + tf.sval.length() + "->" + tf.sval);
				break;
			default:
				System.out.println("What is it? i = " + i);
			}
		}
	}
}