BufferedInputStreamの使用に関するいくつかの質問があります。BufferedInputStreamは、ネットワークソケットとファイル読み取りのケースを使用しますか?
まず、特にHDDから1バイトずつデータを読み込むと、BufferedInputStreamのパフォーマンスが大幅に向上すると聞いています。
それは私が4098バイトのチャックで言うと、ファイル全体を読んでいた場合、私はFileInputStreamのかにBufferedInputStreamを使用するかどうかの重要な違いがありますか?
ByteArrayOutputStream result = new ByteArrayOutputStream(); try(FileInputStream fis = new FileInputStream(filePath)) { // Create some arbitrary buffer byte[] buffer = new byte[4098]; int length; while ((length = fis.read(buffer)) != -1) { result.write(buffer, 0, length); } } return result.toByteArray();
ここで、BufferedInputStreamを使用すると非常に便利ですか?
同じように、BufferedInputStreamはバイト単位で読み込みを行うときにソケットの違いのみをもたらします。つまり、バッファをプリロードしてバイト単位で読み込むのに便利ですか?
1.実際にはそうではありませんが、4098よりも4096や8192を使うほうが良いでしょう。2.上に何かがあると、違いがあります。 'ObjectInputStream'、' ZipInputStream'など – EJP
あなたは基本ストリームなしでBufferedInputStreamを使用することはできません。また、4096または8192またはxまたはyまたはzは、OSとファイルシステムに完全に依存します。通常は2の累乗です。バッファサイズはページサイズの倍数にする必要があります。 – harivis