2017-02-01 5 views
1

나는 filewriter를 FileWriter("file.txt",true)을 사용하여 덮어 쓰는 대신에 추가하려고 노력하고 있습니다. 그러나 작동하지 않습니다. 또 다른 문제는 (확실하지 않은 경우) File file1 = new File("a.txt")을 사용하여 파일을 만들 수 없다는 것입니다. 포매터 사용. 참고 저는 초보자입니다. 가능하다면 제가 한 실수를 자세히 설명해주십시오.filewriter가 파일을 덮어 쓰는 것

public static void newPlayer(){ 
    String name = JOptionPane.showInputDialog("Write yourn name ","new player"); 
    System.out.println(name +" " +points); 
    try { 
     Formatter file1 = new Formatter(name+".txt"); 
     File file2 = new File(name+".txt"); 
     fw = new FileWriter(file2,true); 
     String s = Integer.toString(points); 
     fw.write(s); 
     fw.close(); 
     file1.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    }catch(Exception e){ 
     System.out.println(e); 
    } 
} 
+1

파일 2로 작성하지만 파일 1을 닫으시겠습니까? – Jens

+0

'name + ".txt"'는''file.txt "'가 될까요? 'File file1 = new File ("a.txt")'을 사용할 수없는 이유는 무엇입니까? 어떤 문제에 직면 했습니까? – Thomas

+2

[Java에서 기존 파일에 새 줄을 추가하는 방법] 가능한 중복?] (http://stackoverflow.com/questions/4614227/how-to-add-a-new-line-of-text- to-existing-in-java) –

답변

1

file1에 관한 두 줄을 제거하면 사용되지 않습니다.

포맷터를 사용하면 append=false으로 파일을 열 때 FileWriter (설정 파일에서 사용중인 동일한 파일 설명자, OS에 따라 다름)의 설정을 방해합니다.

... 
try { 
    File file2 = new File(name+".txt"); 
    FileWriter fw = new FileWriter(file2,true); 
    String s = Integer.toString(points); 
    fw.write(s); 
    // a line feed would make the file more readable 
    fw.close(); 
} catch (... 
0

포맷터로 file1 행을 제거했는데 시도하기 전에 작동했지만 파일을 만들지는 않았습니다. 비슷한 문제가있어서 파일이 만들어지지 않으면 file.createnewfile();

try { 
    //Formatter file1 = new Formatter(name+".txt"); 
    File file2 = new File(name+".txt"); 
    // file2.createNewFile(); 
    fw = new FileWriter(file2,true); 
    String s = Integer.toString(points); 
    fw.write(s); 
    fw.close(); 
    //file1.close(); 
} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
}catch(Exception e){ 
System.out.println(e); 
}