我正在将数据写入文件,当我写这个数据时,我想这样做,这样如果文件没有打开,它会给用户一条消息,说明出错了。我这样做的方法是调用方法来写,如果失败则返回false。这样我就可以提示用户做一些事情来检查发生了什么。
然而,当我创建对象时,我无法从构造函数中返回任何内容,所以我对我应该做的事情感到有点难过。
public class Writetofile {
BufferedWriter writer = null;
public Writetofile(String[]details) throws IOException{
String machine= details[0];
String date=details[1];
String start_time = details[2];
try{
File new_cal= new File("C:\\Activity_Calibrator\\log\\"+machine+"\\"+machine+date+".txt");
new_cal.getParentFile().mkdir();
FileWriter fwriter = new FileWriter(new_cal);
writer = new BufferedWriter(fwriter);
writer.write("Linear Calibratiton for " + machine + " carried out " + date+" ./n");
writer.close();
}
catch(Exception e){ in here I would like to be able to send a message back to m
code so that it can tell the user to check the folder etc}
}
当我调用记录数据时,如果出现错误,它将向调用类返回false。我可以发一条消息。
public boolean recordData(String record) throws IOException{
try{
writer.append(record);
writer.close();
return true;
}
catch(Exception e){
return false;
}
}
}
}
答案 0 :(得分:1)
构造函数不应该做任何事情。构造函数是与对象分配密切相关的初始化阶段。
应避免抛出异常,或在可能引发异常的构造函数中执行任何操作。
Java没有分离分配和初始化的阶段,没有代码,特别是IO代码应该在构造函数中。