我需要将二进制文件中的数据作为十六进制字符串提供。当前的实现将整个文件加载到内存中,将其转换为十六进制字符串,并将十六进制字符串作为字节数组提供给另一个组件。
我现在面临的问题是这个文件有时非常大,所以我得到“OutOfMemoryException”。该组件还接受 InputStream 作为输入,所以我想我会将 FileInputStream 包装到另一个流中,该流将文件作为十六进制字符串返回。
但是我不确定如何做到这一点,虽然子类化 InputStream 看起来很简单,但我可以看到这在不同的读取方法和特殊情况下非常容易出错。如果这个轮子已经存在并且我不必重新发明它,那也很好。
建议?