假设用RandomAccessFile以rw模式打开一个空文件,首先写入一个int类型数值(占4字节),接着读取一个double类型数值(占8字节)。此时文件指针的位置是:
答案解析
核心考点:文件指针的移动规律及读写操作的联动影响
解题思路分析:
1. int类型占4字节,写入操作后指针移动到4的位置
2. 读取操作从当前指针位置开始,但此时文件为空,读取double(需要8字节)会超出文件末尾
3. 虽然指针会尝试移动8字节(4+8=12),但实际文件长度只有4字节,此时会触发EOFException(属于IOException的子类)
选项分析:
- A. 4:错误。仅考虑写入后的指针位置,忽略了读取操作对指针的影响
- B. 8:错误。错误地将写入和读取操作的字节数相加(4+8=12),但计算逻辑错误
- C. 12:典型陷阱。虽然指针计算正确,但未考虑文件实际长度不足导致的异常
- D. 正确。读取超出文件范围时触发异常
易错点提醒:
- 文件指针的物理移动与实际可用数据范围的差异
- IOException的触发条件判断
正确答案:D