文件编写器覆盖文件

filewriter overwriting the file

我正在尝试使用 FileWriter("file.txt",true) 使文件编写器追加而不是覆盖,但它不起作用,还有另一个问题(不确定是否已解决)是我无法使用 File file1 = new File("a.txt") 来创建一个文件,所以我正在使用格式化程序。注意我是初学者所以如果可能的话请详细说明我犯的错误。

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

去掉关于file1的那两行,反正也没用了

使用 Formatter 打开文件 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 (...

我用格式化程序删除了 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);  
}