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