我现在想编写一段java代码,实现以下功能,请高手指教。
将程序中的变量数值写入EXCEl中,首先判断是否存在.csv文件,若不存在则创建并写入数值,若存在,则向已有的文件中继续写入。下面是我编写的错误程序,不知哪里错了
public void write2()
{
File f=null;
if(f.exists()==true){
try{
FileWriter out=new FileWriter(f);
out.write("Date,"+Date);
out.write(13);
out.write("Time,"+Time);
out.write(13);
out.write("RA0,"+RA0);
out.write(13);
out.write("RA1,"+RA1);
out.write(13);
out.write("RA2,"+RA2);
out.write(13);
out.write("RA3,"+RA3);
out.write(13);
out.write("RA5,"+RA5);
out.write(13);
out.write("I-Temp.,"+Temp);
out.write(13);
out.write("RB5,"+RB5);
out.write(13);
out.write("LED,"+LED);
out.write(13);
out.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
 else
 { f =new File("data.csv");
try{
FileWriter out=new FileWriter(f);
out.write("Date,"+Date);
out.write(13);
out.write("Time,"+Time);
out.write(13);
out.write("RA0,"+RA0);
out.write(13);
out.write("RA1,"+RA1);
out.write(13);
out.write("RA2,"+RA2);
out.write(13);
out.write("RA3,"+RA3);
out.write(13);
out.write("RA5,"+RA5);
out.write(13);
out.write("I-Temp.,"+Temp);
out.write(13);
out.write("RB5,"+RB5);
out.write(13);
out.write("LED,"+LED);
out.write(13);
//out.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
 }
}

解决方案 »

  1.   

    File f=null;
     不是一直为空吗?
      

  2.   

    直接用
    File f= new File("c:/abc.txt");
    FileWriter out=new FileWriter(f);
    out.write("Date,");
    out.write(13);
    ....
    out.close();不用判断f.exists(),如果文件不存在,java会新建这个文件的。
      

  3.   

    你应该用这个构造函数:new FileWriter(File f,boolean append);
    第二个参数表示是否接着文件尾部写。
      

  4.   

    excel文件不能这么直接写啊。csv没试过,xls肯定是有文件头的。