java 保存文件保存不了

package myutil;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Text {
public static void main(String[] args){
String answer = "y";
SimpleDateFormat format=new SimpleDateFormat("yy-MM-dd hh:mm:ss");
Scanner input =new Scanner(System.in);

System.out.println("输入你姓名");
String name=input.next();
System.out.println("输入对方姓名");
String name1=input.next();

if(answer.equals("y")){//存文件

while(true){
System.out.println("输入对话");
String say=input.next();
Date date=new Date();
System.out.println("回答");
String say1=input.next();
Date date1=new Date();
System.out.println("是否继续y/n");
String t=input.next();
if(!t.equals("y"))
break;
File f=new File("src\\myutil\\ann.txt");
try {
f.createNewFile();
} catch (IOException e) {
System.out.println("文件创建失败");
e.printStackTrace();
}
try {
FileWriter fw=new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
StringBuffer buffer=new StringBuffer();
buffer.append(date+" "+name);
buffer.append(date1+" "+name1);
bw.flush();
fw.close();
} catch (IOException e) {
System.out.println("读取失败");
e.printStackTrace();
}

}
System.out.println("是否保存");
String num=input.next();
System.out.println("保存成功");
}else{
System.out.println("程序结束");
}
}
}

可能是文件的目录写错了,要表达路径用\\转义还不太好,File.separator是一个常量,用于描述不同文件系统中目
录层级分隔符,相当于windows系统下的\;建议你改成这样试一下:
File f = new File("."+File.separator+"ann.txt"),这里的 .点代表当前目录,当前类所属的 项目的根目录,文件会保存在项目名的路径下面。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-02
你这代码写的,根本就没有往输出流写数据,怎么可能会有数据呢?另外,新建文件的时候,要确保该文件夹存在,否则会报错,建议先判断该文件夹是否存在,如果不存在,则新建该文件夹。
bw.write(buffer.toString());
这句代码是将buffer里面的数据写到文件里面。本回答被提问者和网友采纳
第2个回答  2013-09-02
你好,代码少了一句,
StringBuffer buffer=new StringBuffer();
buffer.append(date+" "+name);
buffer.append(date1+" "+name1);
bw.write(buffer.toString());
bw.flush();
fw.close();
另外,程序也有bug,比如创建文件的时候应该先判断文件是否存在
if(!f.exist || !f.isFile) {
f.createNewFile();

}
还有就是,如果第一次对话后就选择不继续对话,那么写入文件的代码就不会执行了