我有一组自反序列化的类,它们从套接字获取数据。序列化的数据格式在有效载荷之前的标头中提供长度信息。在有效载荷不可反序列化的情况下,我想使用上述报头中的长度信息跳过整个块。
但是,为了这样做,我需要知道已经从套接字读取了多少数据。我以为BufferedInputStream
允许我在开始反序列化有效负载之前使用mark()
进行此操作,然后使用pos和markpos确定读取的数据量,但意识到这两个变量还是受保护的。
除了对BufferedInputStream
进行子分类之外,还有没有更好的方法可以访问此信息?
最佳答案
您可以在反序列化之前mark()
BIS,然后调用。
有公共。
然后,可以通过reset()
方法跳过任何数量的字节。
documentation
关于java - 如何访问BufferedInputStream pos和markpos变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20271013/