我当前在代码中使用com.google.common.io.ByteArrayDataInput。我正在写的是一种二进制文件的加载器。不幸的是,ByteArrayDataInput不提供其内部字节数组中剩余多少字节的信息。有没有其他替代品可以提供此类信息?我知道我可以为com.google.common.io.ByteArrayDataInput编写自己的包装器类,但是我想避免这种情况。

编辑

问题是对我的com.google.common.io.ByteArrayDataInput实例的引用通过一系列方法非常深入地传递。看起来像这样:

loadA(ByteArrayDataInput in)调用loadB(in),后者又调用loadC(in);,依此类推。

每个loadX()方法都从in读取内容。我想在ByteArrayDataInput.readFully()中调用loadC()方法,并想在该级别检查还剩下多少字节要读取。为此,我需要通过所有loadX()方法传递bytesLeft信息。

最佳答案

ByteArrayInputStream的可用方法根据source返回数组中剩余的字节数。将其包装在ObjectInputStream中似乎可以为您提供几乎相同的功能。 ObjectInputStream的available()方法无需进行任何处理即可从基础输入流返回available()。

关于java - 替代com.google.common.io.ByteArrayDataInput吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9378862/

10-10 01:43