//rf.java //javac rf.java //java rf import java.util.*; import java.io.*; class rf{ public static void main(String xx[ ]) { new rf( ); } rf( ) { prepareIO( ); readTest( ); } public static final String FileName = "fff.txt"; BufferedReader br=null; PrintStream cout = new PrintStream(System.out); void prepareIO( ) { try{ FileReader fr = new FileReader( FileName ); br = new BufferedReader( fr ); }catch(Exception e) { e.printStackTrace( ); } // }//prepareIO( int n = 0; // total record void readTest( ) { String s=null, s1=null, s2=null; StringTokenizer stk = null; n = 0; while(true) { try { s = br.readLine( ); if(s == null ) break; // EOF encounted if(s.equals("")) continue; // EMPTY String/Line if(s.charAt(0) == '#') { n = n+1; cout.println("=== reading record# " + n); continue; // next Record }// '#' stk = new StringTokenizer(s, " \t"); // space, TAB s1 = stk.nextToken( ); s2 = stk.nextToken( ); // will crash if no more Token //if(s.hasMoreTokens( ) ) s2 = stk.nextToken( ); if(s1.charAt(0) == 'i') cout.println("IP is " + s2); if(s1.equalsIgnoreCase("node:")) cout.println("The NODE is " + s2); // if ... }catch(Exception e) { e.printStackTrace( ); } }//while( cout.println("Total " + n + " records."); }//readTest( // }//class /*** fff.txt # node: haha ip: 140.113.23.135 what: gg.yy.xxx.wwwww # node: haha ip: 140.113.33.235 what: ggg.yyy.uux.www ======================eof F:\javaTest>javac rf.java F:\javaTest>java rf === reading record# 1 The NODE is haha IP is 140.113.23.135 === reading record# 2 The NODE is haha IP is 140.113.33.235 Total 2 records. F:\javaTest> **************************/