2016-08-22 4 views
0

正確なバイト数をInputStreamからOutputStreamにコピーする必要があります。これを行う1つの方法は、一度に1バイトを読み込み、数に達すると停止しますが、パフォーマンスはあまり良くありません。一度に複数のバイトをコピーするためにバイト配列バッファを使用すると、指定された量よりも多くのバイトがInputStreamから読み込まれる可能性があります(バッファサイズで割り切れない場合は必要な量です)。データの量はかなり大きいので、ただ1バイトの配列バッファを使用してその中のすべてのデータを読み込むことはできません。Androidバイトストリームのコピーバッファを使用する正確なバイト数

正確な量のデータをあるストリームから別のストリームに効率的にコピーする方法はありますか?

助けていただけたら幸いです!

答えて

1

これは動作するはず

int bytesToRead = .... 
byte [] b = new byte[1024]; 
while (bytesToRead > 0) 
{ 
    int read = is.read(b, 0, Math.min(bytesToRead, 1024)); 
    if (read < 0) 
     break; 
    bytesToRead -= read; 
    os.write(b, 0, read); 
} 
関連する問題