在向一个文件中保存数据时,出现了这个问题,java.io.IOException: write failed: EBADF (Bad file number)
原来是因为java本身的回收机制的问题,因为我是在初始化是对文件进行写数据,导致等我再次调用时,fos已经被回收,虽然fos依旧不为空,但属于假数据,所以,我进行了一些修改
/**
* 获取输出流后,写数据
* @param str
*/
private void write(String str){
try {
fos = initFile();
if(fos != null){
fos.write(str.getBytes());
fos.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当每次写数据时,我去获取到fos,保证了fos真实存在