我有一个案例,我需要在流中提前查看某个正则表达式的存在,然后从流中读取数据。
mark 和 reset 允许我这样做,但我面临一个问题,如果readAheadLimit超出当前缓冲区的大小,则标记变得无效。
例如:我有一个缓冲区大小为1k的 BufferedReader 。
假设我在缓冲区中的位置 1000 ( mark=1000 ),我需要在接下来的 100 个字符 ( readAheadLimit=100 )中检查正则表达式。
因此,在读取时,当我跨越当前缓冲区大小(1024)时,分配了一个新缓冲区并且标记变得无效(无法重置)并且数据以正常方式流入新缓冲区。
我认为这是预期的行为,但有没有办法解决这个问题?
感谢你的帮助。
问候