2016-10-13 1 views
0

나는 실행 인수에 지정된 텍스트 파일을 가져와 한 번에 한 단어 씩 다른 줄에 인쇄해야하는 프로그램이 있습니다. 대시 (-) 및 아포 스트로피 (')를 제외하고는 모든 특수 문자를 생략해야합니다.두 줄의 텍스트를 사용하는 StringTokenizer의 문제

나는 기본적으로 파일의 첫 번째 줄을 인쇄 할 수 있다는 점만 제외하면 프로그램을 마쳤습니다.

다음은 텍스트 파일에있는 것입니다 :

이 입력 파일의 첫 번째 줄입니다. 그것은 하나 이상의 라인 있습니다!

여기 내가 사용하고 실행 인수입니다 :

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()를 호출 : A1 A1.txt 여기

내 코드입니다

자바! 따라서 입력 파일의 첫 번째 줄을 읽고 구문 분석 만합니다. 그런 다음 프로그램이 종료됩니다.

은 무엇 당신이 원하는 것은 당신이 끝에 도달 할 때까지과 같이, while 루프에 그것을 던져 파일의 모든 라인을 읽을 수 있습니다 : 기본적으로

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

,이 "인 의미를가하면서 다음 줄을 읽으려면 그 줄에서 다음과 같이하십시오. "

관련 문제