2016-06-08 2 views
-1

저는 자신에게 java를 가르치고 있으며 스캐너 및 텍스트 파일에 대한 실험을 실험 해 왔습니다. 이 코드를 사용하면 오류 메시지가 발생합니다.스캐너를 사용하여 텍스트 파일에 쓸 때 예외 오류가 발생했습니다.

package testPackage; 
import java.util.Scanner; 
import java.util.Formatter; 

public class WriteTest1 { 

public static void main(String[] args) { 
    try{ 
     String name; 
     String cont; 
     Scanner nameSc = new Scanner(System.in); //Gets the name of the file that is being edited. 
     Scanner contSc = new Scanner(System.in); //Gets the content that is being added to the file. 
     name = nameSc.next(); //First scanner's input 
     cont = contSc.next(); //Second scanner's input 
     Formatter file = new Formatter("C:\\Users\\USERNAME\\Desktop\\MyDesktop\\" +name); 
     file.format("%s",cont); 
     file.close(); 
    }catch(Exception e){ 
     System.out.println("Error"); 
    } 
} 
} 

예외 유형을 }catch(FileNotFoundException e){으로 변경해 보았지만 오류 메시지가 계속 나타납니다.

다음은 스캐너/문자열 중 하나인지 확인하려고했습니다. 특정 오류가 Formatter file = new Formatter("C:\\Users\\USERNAME\\Desktop\\MyDesktop\\" +name);에 의해 발생한 것으로 나타났습니다. 나는 그것이 잘 작동하지만, 그것은 잘못된 위치에 파일을두고 내가 그들을두면 말한다 오류 및 아무것도하지 않는다 \의 마지막 세트를 제거합니다. (고정)

편집 나의 새로운 문제에 file.format("%s",cont); 행 문장을 넣을 때 첫 단어 만 인쇄합니다. 문제가 "%s"에 있음을 압니다. 그러나 오라클의 정보를 읽을 때 나는 이것을하기 위해 .format을 사용할 수없는 것으로 보인다.

편집 2file.format("%s", "String Test");으로 바꾸어 보았습니다. 그리고 두 단어가 담긴 파일을 작업했습니다. 그러나 이것은 사용자가 쓰려는 내용을 설정할 수는 없습니다.

무엇을 사용합니까?

+2

왜 당신은 당신이 동일한 입력 소스에 대해이'Scanner' 인스턴스를 필요가 있다고 생각합니까 오류를 인쇄 할 chatch에 e.printStackTrace() 또는 System.out.println(e.getMessage()을 사용하여 로그인을 시도? –

+2

'System.out.println ("Error");'앞에'e.printStackTrace()'를 추가하고 출력하십시오. –

+0

'Formatter' 행의 문제점은 제가 사용자 이름에 문자를 넣지 않았다는 것입니다. 파일 패스 이제는 내'file.format ("% s", cont);의 첫 번째 단어 만 출력합니다. –

답변

0

\의 마지막 세트를 제거하면 데스크톱 이름이이므로 파일 이름을 지정해야합니다.

는 오류가

+0

문제는 내가 생각했던 것이 아니 었습니다. 파일 경로에 오타가 있습니다. –

관련 문제