2013-11-26 2 views
0

실험실 작업을위한 프로그램을 유니에서 쓰고 있는데, 코드가 무엇을하는지 분명하게 알 수 있지만, 첫 번째 줄, 즉 루프의 1 번을 요구할 때 , 당신은 문자열을 삽입하고 입력 히트, 그것은 자동으로 루프의 마지막 증분 (5) 어떤 아이디어로 바로 점프?for 루프가 모든 증분을 반복하지 않음

import java.io.BufferedWriter; 
import java.io.FileWriter; 
import java.io.PrintWriter; 
import java.util.Scanner; 

public class limmerickWriter { 
    public static void main(String[] args)throws Exception { 

     Scanner limScan = new Scanner(System.in); //scanner to read user input 

     System.out.println("please enter the name of the file"); 

     String fileName; 

     fileName = limScan.next(); //filename for the text file 

     PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fileName))); //declaring a new file writer 

     for (int i = 1; i <= 5; i++) //loop to get 5 seperate lines from the user 
     { 
      System.out.println("please enter line " + i); 

      out.println(limScan.next()); //writes the contents of the scanner to the file 

     } 
     out.flush(); 
     out.close(); 
    } 
} 
+0

디버깅을 시도 했습니까? 코드는 나에게 잘 보입니다. – Paranaix

+0

Eclipse IDE를 사용하고 있으므로 컴파일하기 전에 자동으로 디버그됩니다. – srheayns

+4

아니요. "디버깅"은 디버거에서 코드를 실행하거나 응용 프로그램에 디버거를 연결하는 것을 의미합니다. –

답변

6

scanner.next()으로 읽는 동안 공백이 기본 구분 기호로 사용됩니다. 즉, 공백으로 구분 된 여러 단어로 파일 이름을 삽입하면 먼저 next() 연속 호출로 읽습니다. 예를를 들어

, 동안 삽입 할 경우, scanner.next()를 사용하여 filename 읽기 :

test ATest BTest CTest DTest ETest

그리고 명중 Enter, 당신은 이름 test을 가진 파일이 사용자의 관련 클래스 경로에 작성되는 것을 볼 수 있습니다, 텍스트 데이터 ATest BTest CTest DTest ETest을 포함합니다.

대신 for 루프 내부에서 nextLine()을 사용해보십시오.

관련 문제