一
IOException会就被抛出
close,如果最终
flush失败。可能的原因包括:
- 文件系统已满,或用户超出配额,
- 硬盘错误
- 文件系统被强行卸载,
- 由于网络或其他问题,远程文件系统不可用,
- (可能是)通过
OutputStreamWriter
或类似方式写入文件的字符编码错误, - 如果“文件”是设备文件,则设备错误,
- 如果可关闭设备是网络流,则失去连接,
- 如果封闭容器是通向外部过程的管道,则该管道破裂;
- 等等。
我当然已经看过其中一些。其他可能性不大。
但是,如果要写入的数据很重要,则应该允许
close失败。例如,如果您的应用程序正在写出文件已填满的关键文件,则您的应用程序最好在用截断的版本替换文件的旧副本之前注意到这一点。



