-1

次のコードを使用して画像のバイト配列を読み取ろうとしていますが、メモリ不足の例外がスローされます。例外が発生する場所についてコメントしました。

byte[] bBuffer = new byte[300000]; // 
ByteArrayBuffer baf = new ByteArrayBuffer(300000);
int total = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
    int read = 0;           
    while ((dis.read(bBuffer, 0, bBuffer.length)) != -1) {
        baos.write(bBuffer, 0, bBuffer.length); // Exception occurs here        
        Log.d("outputImageBytes", "Reading Image Bytes: " + bBuffer.length + " " + read++ );
    }
    //baos.flush();
}
catch (Exception e)
{   
    Log.e("outputImageBytes", "Exception Occured while reading image bytes: " + e.getMessage());
    e.getMessage();
}
4

1 に答える 1

1

実際に読み取られるバイト数を無視しています。

int numberofBytesRead=dis.read(bBuffer, 0, bBuffer.length);
baos.write(bBuffer, 0, numberOfBytesRead);
于 2013-03-05T11:57:40.257 に答える