2017-02-01 27 views
1

Я пытаюсь добавить файл-сценарий вместо перезаписи с помощью 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-an-existing-file-in-java) –

ответ

1

Удалите две линии относительно file1, она не используется в любом случае.

Использование Formatter открывает файл с append=false, что мешает настройкам FileWriter (такой же дескриптор файла используется под капотом? Зависит от ОС?).

... 
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); 
}