«Медленно» действительно довольно неоднозначно.При этом, учитывая то, что вы пытаетесь сделать, вы не должны использовать BufferedInputStream
, а ваш buffer
слишком мал.
Буферизованные оболочки предназначены для оптимизации небольших операций чтения / записи.Поскольку все, что вы делаете, - это пытаетесь прочитать тонну данных так быстро, как только можете, вы должны просто читать непосредственно из InputStream
и использовать большой буфер (скажем, 64 КБ, поскольку основной нативный код, вероятно, будет собираться в чанк).в любом случае)
byte[] buffer = new byte[65536];
...
while ((bufferLength = iS.read(buffer, 0, buffer.length) > 0) {
...