저는 자신에게 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
을 사용할 수없는 것으로 보인다.
편집 2 을 file.format("%s", "String Test");
으로 바꾸어 보았습니다. 그리고 두 단어가 담긴 파일을 작업했습니다. 그러나 이것은 사용자가 쓰려는 내용을 설정할 수는 없습니다.
무엇을 사용합니까?
왜 당신은 당신이 동일한 입력 소스에 대해이'Scanner' 인스턴스를 필요가 있다고 생각합니까 오류를 인쇄 할 chatch에
e.printStackTrace()
또는System.out.println(e.getMessage()
을 사용하여 로그인을 시도? –'System.out.println ("Error");'앞에'e.printStackTrace()'를 추가하고 출력하십시오. –
'Formatter' 행의 문제점은 제가 사용자 이름에 문자를 넣지 않았다는 것입니다. 파일 패스 이제는 내'file.format ("% s", cont);의 첫 번째 단어 만 출력합니다. –