リモート サーバー (例: http://example.com/images ) に保存されている画像ファイルがあります。このフォルダー内の画像は、100 ミリ秒あたり 1 画像の割合で更新されます 。MJPEG 画像を送信する IP カメラを考えてみてください。
リモートサーバーに接続するためにApache HTTPクライアントAPIを使用しています。コンテンツのストリームを取得しています
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://example.com/images/screenshot.jpg");
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
I/O を高速化するために、入力ストリームを BufferedInputStream にまとめています。
FileChannel や MemoryMappedBuffers などの NIO 機能を使用して、I/O パフォーマンスを改善し、非ブロッキング モードでリモート サーバー上の生成された画像ファイルにアクセスしたいと考えています。
しかし、私が見たサンプルは、ファイルオブジェクトをパラメーターとして取る FileInputStream / RandomAccessFiles の作成について話しています。
FileChannel を取得するために FileInputStream に変換できないリモート サーバーからの応答として InputStream を取得しています。
fileChannelsを提供するApache httpクライアントAPIに実装があるかどうかを知りたいです。
または、ソケットを調べてチャネル アクセスを取得する必要があります。javax.imageIO も調査しましたが、より高速なI/Oの要件を満たすかどうかはわかりません