我对编程有点新,并且根本没有使用缓冲编写器。
据我所知,我的代码很好。但是我不知道这是打印到文件的位置,甚至是哪里。我找不到文件的位置。
if (choice ==2) {
String Id;
String Name;
String Time;
int penalty;
String Code;
new FileWriter("res/dogs.txt",true);
try {
System.out.println("add a dog");
System.out.println("enter dog ID (cancel to quit)");
Id =k.next ();
System.out.println("enter dog name");
Name=k.next();
System.out.println("enter dogs time");
Time = k.next();
System.out.println("enter penalty quantity");
penalty = k.nextInt();
System.out.println ("enter course code");
Code = k.next();
if (!Id .equalsIgnoreCase ("cancel")) {
//true = append file
FileWriter fileWritter = new FileWriter(Dog.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(Id);
bufferWritter.write(" ");
bufferWritter.write(Name);
bufferWritter.write(" ");
bufferWritter.write(Time);
bufferWritter.write(" ");
bufferWritter.write(penalty);
bufferWritter.write(" ");
bufferWritter.write(Code);
bufferWritter.write(" ");
bufferWritter.close();
}
} catch(IOException e){
e.printStackTrace();
}
} else if (choice == 3) {
mainmenu();
}
关于我做错了什么的想法?
答案 0 :(得分:1)
默认情况下,使用FileWriter创建的文件将保存在运行程序的目录中。
请注意,您可以通过在文件名中添加文件夹路径来指定要保存创建文件的位置。例如,如果要将文件保存在D:\
中,则可以执行此操作:
FileWriter fileWritter = new FileWriter("D:\\res\\"+Dog.getName()+".txt",true);
答案 1 :(得分:1)
关于您要写信的地方有两个错误。首先,您要在try块的代码开头创建一个新的FileWriter
"res/dogs.txt"
路径,但是您永远不会使用它!
稍后在您的代码中,但在您开始编写之前,请致电:
FileWriter fileWritter = new FileWriter(Dog.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
然后写入链接到BufferedWriter
的{{1}},文件路径为FileWriter
,无论可能是什么,并忽略您创建的原始文件编写器。
此外,您应该在Dog.getName()
块中调用close()
方法,如下所示:
finally
甚至更好地尝试使用这样的资源:
FileWriter writer //or other resource using method
try
{
//do stuff
}
catch(Exception)
{
//handle problem
}
finally
{
writer.close();
}