2016-10-13 20 views
0

的兩行我有一個應該採取的運行參數中指定的文本文件,並在單獨的行上一次打印一個字的程序。它應該省略除破折號( - )和撇號(')以外的任何特殊字符。故障使用StringTokenizer的文字

我已經基本完成了程序,除了我只能打印文件的第一行文本。

下面是在文本文件中:

這是輸入文件的第一行。它有多於一行的 !

下面是我使用的運行參數:

的Java A1 A1.txt

這裏是我的代碼:

import java.io.*; 
import java.util.*; 

public class A1 
{ 
    public static void main (String [] args) throws IOException 
    { 
     if (args.length > 0) 
     { 
     String file = (args[2]); 

     try 
     { 
      FileReader fr = new FileReader (file); 
      BufferedReader br = new BufferedReader(fr); 
      String s = br.readLine(); 
      int i = 1; 
      StringTokenizer st = new StringTokenizer(s); 
      while (st.hasMoreTokens()) 
      { 
      System.out.println(st.nextToken()); 

      } 
       br.close(); 
      } catch (IOException e) 
      { 
       System.out.println ("The following error occurred " + e); 
      } 
     } 
     } 
    } 

回答

1

你只叫readLine()一次!所以你只能通過輸入文件的第一行讀取和解析。該程序然後結束。

你想要做的就是扔在一個while循環和讀取文件的每一行,直到你到達終點,就像這樣:

while((s = br.readLine()) != null) { 
    StringTokenizer st = new StringTokenizer(s); 
    while (st.hasMoreTokens()) { 
     System.out.println(st.nextToken()); 
    } 
} 

基本上,這是什麼意思是「雖然有是要閱讀的下一行,請使用該行執行以下操作「。