import java.io.*; class StreamTokenizerTest { public static void main(String[] args) throws IOException { FileReader f = new FileReader("Tokens.dat"); StreamTokenizer in = new StreamTokenizer(f); in.slashSlashComments(true); in.slashStarComments(true); in.ordinaryChar(','); in.parseNumbers(); String name = null; long enum = 0; String title = null; for (int fieldno = 0; in.nextToken() != StreamTokenizer.TT_EOF; ++fieldno) { switch (fieldno % 5) { case 0: name = in.sval; break; case 2: enum = (long)in.nval; break; case 4: title = in.sval; break; case 1: case 3: if (in.ttype != ',') { System.err.println( "Syntax error in line " + in.lineno() ); System.exit(1); } } if ((fieldno + 1) % 5 == 0) System.out.println("name = " + name + ", " + "enum = " + enum + ", " + "title = " + title); } f.close(); } } /* Input (file Tokens.dat): // Employee Roster "John Doe",1,Engineer "Jane Dear",2,"President & CEO" "John Deere",3,"Mail Clerk" */ /* Output: name = John Doe, enum = 1, title = Engineer name = Jane Dear, enum = 2, title = President & CEO name = John Deere, enum = 3, title = Mail Clerk */