filewriter覆盖文件

时间:2017-02-01 10:37:29

标签: java file overwrite filewriter

我正在尝试使用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);  
    }
}

2 个答案:

答案 0 :(得分:1)

删除关于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 (...

答案 1 :(得分: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);  
}