我有一组自反序列化的类,它们从套接字获取数据。序列化的数据格式在有效载荷之前的标头中提供长度信息。在有效载荷不可反序列化的情况下,我想使用上述报头中的长度信息跳过整个块。
但是,为了这样做,我需要知道已经从套接字读取了多少数据。我以为BufferedInputStream允许我在开始反序列化有效负载之前使用mark()进行此操作,然后使用pos和markpos确定读取的数据量,但意识到这两个变量还是受保护的。

除了对BufferedInputStream进行子分类之外,还有没有更好的方法可以访问此信息?

最佳答案

您可以在反序列化之前mark() BIS,然后调用。
有公共。
然后,可以通过reset()方法跳过任何数量的字节。
documentation

关于java - 如何访问BufferedInputStream pos和markpos变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20271013/

10-12 01:43