다음 코드를 사용하여 이미지의 바이트 배열을 읽으려고하지만 메모리 부족 예외가 발생합니다. 예외가 발생한 곳을 주석 처리했습니다.ByteArrayOutputStream OutOfMemoryError throw
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();
}
'baos'에 쓸 때'dis.read (..) '값을 무시합니다. 읽은 실제 바이트 수를 반환합니다. 이제 버퍼의 총 길이가 항상 삽입됩니다. –
조금 혼란 스러워요, 제발 제발 좀 줄래? :) –