2016-10-13 3 views
0

実行引数に指定されたテキストファイルを1行ずつ別々の行に出力するプログラムがあります。ダッシュ( - )とアポストロフィ( ')以外の特殊文字は省略することになっています。2行のテキストを使用した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()); 
    } 
} 

、これは「であることを意味するものがありながら、次の行を読み込み、その行で次の行を実行してください。 "

関連する問題