問題タブ [bufferedinputstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - BufferedInputStream read() を調整するには?
Oracle データベースから BLOB 列を読み取り、次のようにファイルに書き込みます。
ファイルサイズは約 3MB で、バッファを読み取るのに 40 ~ 50 秒かかります。実際には 3D 画像データです。では、この時間を短縮する方法はありますか?
buffer - HttpURLConnection InputStream の読み取り - 手動バッファまたは BufferedInputStream?
HttpURLConnection の InputStream を読み取るとき、次のいずれかを使用する理由はありますか? 例で両方が使用されているのを見てきました。
手動バッファ:
BufferedInputStream
EDIT私はまだ一般的にHTTPに不慣れですが、頭に浮かぶ1つの考慮事項は、永続的なHTTP接続を使用している場合、入力ストリームが空になるまで読み取ることができないということですよね? その場合、メッセージの長さを読み取って、その長さの入力ストリームを読み取る必要はありませんか?
同様に、永続的な接続を使用していない場合、ストリームを適切に読み取るという点で、私が含めたコードは 100% 適切ですか?
java - BufferedInputStream の使用
この投稿の前に、1 つの注意をさせてください。Javaに関しては全くの初心者です。しばらくの間、PHP のオンとオフをプログラミングしてきましたが、デスクトップ アプリケーションを作成する準備ができていたので、さまざまな理由で Java を使用することにしました。
私が取り組んでいるアプリケーションは初期段階 (5 クラス未満) にあり、ローカル ファイルからバイトを読み取る必要があります。通常、ファイルは現在 512kB 未満です (ただし、将来的に大きくなる可能性があります)。現在、FileInputStream
ファイルを 3 バイト配列に読み込むために a を使用しています。これは私の要件を完全に満たしています。ただし、言及されているのを見て、BufferedInputStream
現在これを行っている方法が最適かどうか、または a も使用する必要があるかどうか疑問に思っていBufferedInputStream
ました。
私はいくつかの調査を行い、Stack Overflow に関するいくつかの質問を読みましたが、BufferedInputStream
. 私の状況では、バイトを読み取った最初の配列はほんの数バイト (20 未満) です。受け取ったデータがこれらのバイトで適切であれば、残りのファイルをさまざまなサイズのさらに 2 つのバイト配列に読み込みます。
また、多くの人が特定のケースでどちらがより効率的かを確認するためにプロファイリングについて言及していると聞いていますが、私はプロファイリングの経験がなく、どこから始めればよいかよくわかりません。これについてもいくつかの提案が欲しいです。
とても長い投稿で申し訳ありませんが、これらのことを行うための最良の方法を学び、理解したいと思っています. 私は常に自分の決定を二番目に推測する悪い癖があるので、フィードバックをいただければ幸いです. ありがとう!
java - 多くのネストされた BufferedInputStream の影響は?
ストリームからのデータを処理するアプリケーションの各レイヤーが、それを BufferedInputStream にラップする傾向がある場合、一般的なパターンがあります。そのため、全体として、多くのバッファー、バッファーからの入力、バッファーからの入力などがあります。
これは悪い習慣だと思います。質問したいのですが、パフォーマンスにどのような影響がありますか? これはバグを引き起こす可能性がありますか?
java - InputStream または InputStreamReader をバッファリングする必要がありますか?
次の 2 つのバッファリング アプローチの違い (ある場合) は何ですか?
java - Java - バッファリングされているかどうかに関係なく、ソケットで DataInputStream を使用していますか?
私は単純なクライアント/サーバーアプリケーションを書いています.DataInputStreamを使用してデータを読み取ると、読み取るものを選択できるため(バイトから自分で変換する必要はありません)、非常に便利であることがわかりましたが、そうなるかどうか疑問に思っていますBufferedInputStream にもラップするのが最善ですか、それとも不要なオーバーヘッドが追加されるだけですか?
私が質問している理由は、ソケット ストリームから直接読み取るのにどれだけコストがかかるかわからないためです (BufferedInputStream を使用する場合、ソケット ストリームから 1 回だけ読み取ってから、DataInputStream を使用して BufferedInputStream から時間を掛けます)。
通常、受信するデータは非常に小さく、約 20 ~ 25 バイトです。
ご回答ありがとうございます。:D
java - BufferedOutput/Input Stream を使用するときに、ファイルに関連付けられたファイル名を送信する方法についてのアイデアはありますか?
いくつかの jpeg (および場合によっては zip) ファイルを送信しています。定義するのではなく、ファイル名(またはカスタムファイル名)をファイルと一緒に送信する方法を誰かが知っているかどうか疑問に思っていました
java - Java で BufferedInputStream の最適なサイズを探す
バイナリ ファイルをロードしているコードをプロファイリングしていました。ロード時間は約15秒でした。
ロード時間の大半は、バイナリ データをロードするメソッドによるものでした。
DataInputStream を作成するための次のコードがありました。
そして、私はこれを次のように変更しました:
この小さな変更を行った後、読み込みコードは 15 秒から 4 秒になりました。
しかし、BufferedInputStream には 2 つのコンストラクターがあることがわかりました。もう 1 つのコンストラクターを使用すると、バッファー サイズを明示的に定義できます。
2 つの質問があります。
- BufferedInputStream で選択されたサイズはどれくらいですか?それは理想的ですか? そうでない場合、バッファーの最適なサイズを見つけるにはどうすればよいですか? 二分探索を行う簡単なコードを書く必要がありますか?
- これは BufferedInputStream を使用できる最良の方法ですか? 私はもともと GZIPInputStream 内にそれを持っていましたが、ごくわずかな利益しかありませんでした。私は、コードが現在行っていることは、ファイル バッファーがいっぱいになる必要があるたびに、GZIP 入力ストリームが通過し、x バイト (x はバッファーのサイズ) をデコードすることであると想定しています。GZIPInputStream を完全に省略するだけの価値はありますか? 絶対に必要というわけではありませんが、使用するとファイル サイズが劇的に減少します。
java - バッファ付き入力ストリームのヘルプ
次のコードをどこかで見ましたが、(ry-'0') の部分に戸惑っています。それは何をしますか?bis はバッファリングされた入力ストリームであり、入力はそれぞれがスペースで区切られた複数の整数の行です (つまり、1 2 3 4 5 6)。
android - Androidでの断続的なHttpClientGETの問題
サーバーから画像をダウンロードし、それをビットマップに読み込んでImageViewに表示するAndroidアプリケーションを使用しています。
これはほとんどの場合うまく機能しますが、多くの場合、プロセスを経て(「画像を取得しています...」というProgressDialogがあります)、完了すると何も表示されません。logcatには、これにリモートで関連しているように見えるものは何もありません。
コードは次のとおりです。
何も表示されていない場合でも、Respコンテンツの長さは常に正しいサイズを報告しますが、それでも何も表示されません。
このコードはAsyncTaskから呼び出されますが、一度に呼び出されるタスクは1つだけです。
これは私を狂気に駆り立てています、なぜそれがこれを続けているのか分かりません。
編集:これがimageViewを設定するコードです