问题描述
在通过 BufferedReader
读取文件时,如果我通过 rm -rf
删除文件,则 BufferedReader
将在没有 IOException
的情况下终止
解决方法
这是正常的预期行为。在类 Unix 系统上删除文件包括删除指向目录条目表中文件数据位置的链接。当没有指向文件的链接,并且没有文件描述符打开它时,它的空间将被回收。由于当前打开了一个文件描述符(通过使用 BufferedReader),它将保持打开状态,直到 BufferedReader 完成。尽管该文件已打开,但它在目录列表中不可见。