我当前在代码中使用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/