IOException: write failed: EBADF (Bad file number)

在向一个文件中保存数据时,出现了这个问题,java.io.IOException: write failed: EBADF (Bad file number)

IOException: write failed: EBADF (Bad file number)_第1张图片


原来是因为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真实存在

你可能感兴趣的:(IOException,写数据)