バイナリ ファイルからデータを 16 進文字列として提供する必要があります。このための現在の実装では、ファイル全体をメモリにロードし、それを 16 進文字列に変換して、16 進文字列を別のコンポーネントにバイト配列としてフィードします。
私が今直面している問題は、このファイルが非常に大きい場合があるため、「OutOfMemoryException」が発生することです。このコンポーネントは InputStream も入力として受け入れるので、FileInputStream を、ファイルを 16 進文字列として返す別のストリームにラップすると考えました。
ただし、これを行う方法がわかりません。InputStream のサブクラス化は簡単に思えますが、さまざまな読み取りメソッドや特殊なケースで非常にエラーが発生しやすいことがわかります。また、この車輪がすでに存在していて、再発明する必要がない場合もいいでしょう。
提案?