2014-01-22 2 views
0

저는 프로그래밍에 약간 익숙하고 버퍼링 된 작성자를 전혀 사용하지 않았습니다.입력이 어디로 가고 있습니까?

나는 내 코드가 좋다는 것을 알 수있다. 그러나이 파일을 인쇄하는 경우 또는 심지어 경우에도 나는 모른다. 파일 위치를 찾을 수 없습니다.

if (choice ==2) { 
    String Id; 
    String Name; 
    String Time; 
    int penalty; 
    String Code; 

    new FileWriter("res/dogs.txt",true); 

    try { 
     System.out.println("add a dog"); 
     System.out.println("enter dog ID (cancel to quit)"); 
     Id =k.next(); 
     System.out.println("enter dog name"); 
     Name=k.next(); 
     System.out.println("enter dogs time"); 
     Time = k.next(); 
     System.out.println("enter penalty quantity"); 
     penalty = k.nextInt(); 
     System.out.println ("enter course code"); 
     Code = k.next(); 

     if (!Id .equalsIgnoreCase ("cancel")) { 
      //true = append file 
      FileWriter fileWritter = new FileWriter(Dog.getName(),true); 
      BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
      bufferWritter.write(Id); 
      bufferWritter.write(" "); 
      bufferWritter.write(Name); 
      bufferWritter.write(" "); 
      bufferWritter.write(Time); 
      bufferWritter.write(" "); 
      bufferWritter.write(penalty); 
      bufferWritter.write(" "); 
      bufferWritter.write(Code); 
      bufferWritter.write(" "); 
      bufferWritter.close(); 
     } 
    } catch(IOException e){ 
     e.printStackTrace(); 
    } 
} else if (choice == 3) { 
    mainmenu(); 
} 

내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?

답변

1

을 당신이 작성하는 경우에 관한 두 가지 오류가 있습니다. 첫 번째는 try 블록에서 코드 시작 부분에 "res/dogs.txt" 경로를 사용하여 새 FileWriter을 새로 만들고 있지만 사용하지 않았 음을 의미합니다. 나중에 코드에서

, 그러나 당신이 쓰기 시작하기 전에 전화 :

FileWriter fileWritter = new FileWriter(Dog.getName(),true); 
BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 

당신은 그이있을 수 있습니다 어떤 Dog.getName() 같은 파일 경로와 FileWriter에 링크 된 BufferedWriter에 기록하고, 원본을 무시 당신이 만든 파일 작가. 또한

,이 같은 finally 블록에 close() 메소드를 호출해야합니다 심지어 더 나은와

FileWriter writer //or other resource using method 
try 
{ 
     //do stuff 
} 
catch(Exception) 
{ 
    //handle problem 
} 
finally 
{ 
     writer.close(); 
} 

또는 같은 리소스로 시도해보십시오

try(BufferedWriter writer = new BufferedWriter(otherWriter)) 
{ 
     //do stuff 
} 
catch(Exception) 
{ 
     //handle error 
    } 
1

기본적으로 FileWriter를 사용하여 만든 파일은 프로그램을 실행하는 디렉터리에 저장됩니다.

파일 이름에 폴더 경로를 추가하여 만든 파일을 저장할 위치를 지정할 수 있습니다. 당신이 D:\에서 파일을 저장하려는 경우 예를 들어, 당신은이 작업을 수행 할 수 있습니다

FileWriter fileWritter = new FileWriter("D:\\res\\"+Dog.getName()+".txt",true); 
관련 문제