我正在尝试为我正在处理的程序创建一个保存函数,并且出于某种原因,每当我运行它时,它只会超过try {}语句的第一行。 我的代码如下所示。
public void saveGame() {
System.out.println("saveGame");
try
{
System.out.println("try saveGame");
BufferedWriter b = new BufferedWriter(new FileWriter("chardata.txt"));
System.out.println("try saveGame2");
String sp = System.getProperty("line.separator");
System.out.println("try saveGame3");
b.write("Miscellaneous char data here");
b.close();
}
catch(IOException ex)
{
System.out.println("File Writing Error");
}
}
当我运行该程序时,唯一可以打印的行是“saveGame”和“try saveGame”。没有“文件写入错误”,它只是在“尝试saveGame”行后没有做任何事情。我不确定这是否相关,但我是在学校的计算机上进行此操作,这可能会限制权限。任何形式的解释和/或帮助将不胜感激。
答案 0 :(得分:0)
我认为编写文件的更好方法是使用FileOutputStream
和OutputStreamWriter
。
另外,您应该将b.close
移动到finally语句,因为如果在执行b.close
之前抛出异常,它将永远不会被执行。
public void saveGame() {
System.out.println("saveGame");
try
{
System.out.println("try saveGame");
String path = "./chardata.txt"; //your file path
File file = new File(path);
FileOutputStream fsal = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fsal);
Writer w = new BufferedWriter(osw);
System.out.println("try saveGame2");
String sp = System.getProperty("line.separator");
System.out.println("try saveGame3");
w.write("Miscellaneous char data here");
}
catch(IOException ex)
{
System.out.println("File Writing Error");
}
finally{
if(w!=null)
w.close();
}
}