InputStreamとPrintStreamを提供する必要があるライブラリを使用しています。InputStreamを使用して処理用のデータを収集し、PrintStreamを使用して結果を提供します。私はこのライブラリの使用に固執しており、そのAPIを変更することはできません。
これには2つの問題があり、関連する解決策があると思います。
まず、InputStreamを介して読み取る必要のあるデータは事前に利用できません。代わりに、データはアプリケーションの別の部分によって動的に作成され、メソッド呼び出しを介して文字列としてコードに渡されます。私のコードの仕事は、ライブラリがこのデータを取得したときに提供されるInputStreamを介してこのデータを読み取れるようにすることです。
次に、PrintStreamに書き込まれる結果を取得し、それを文字列としてアプリケーションの別の部分に送信する必要があります。これは、データがPrintStreamに入れられた直後に発生する必要があります。
必要なのは、多かれ少なかれバッファのように動作する2つのストリームオブジェクトです。データを持っているときはいつでもデータを押し込めるInputStreamと、データがあるときはいつでもそのコンテンツを取得できるPrintStreamが必要です。これは私には少し厄介に思えますが、他にどのように行うかはわかりません。
この種の動作を可能にするものがすでに存在するのか、それとも私が説明した状況で機能する別の(より良い)解決策があるのか疑問に思います。私が思いつくことができる唯一のことは、この動作でストリームを実装しようとすることですが、それはすぐに複雑になる可能性があります(特に、データが利用可能になるまでInputStreamをブロックする必要があるため)。
何か案は?
編集:明確にするために、私はライブラリを書いていません。ライブラリにデータを読み取るためのInputStreamとデータを書き込むためのPrintStreamを提供することになっているコードを書いています。