2013-04-19 1 views
1

j2me 모바일에서 서버로 이미지를 업로드하는 응용 프로그램을 개발 중입니다. j2me 모바일에서와 마찬가지로 힙 크기가 1MB로 할당되었으므로 이미지를 1MB 이상 업로드하려고 시도하면 OutOfMemory 예외가 발생합니다. j2me 모바일에서이 문제를 처리 할 수있는 방법이 있습니까?j2me에서 크기가 1MB 이상인 이미지를 처리하는 방법

감사합니다.

답변

1

업로드하기 전에 전체 이미지를 메모리에로드하려고합니다 (byte[] 사용). 이런 경우에는 피해야합니다. 스트림을 사용하는 것이 좋습니다.
먼저 파일의 경우 InputStream을 가져오고 서버의 경우 OutputStream을 가져옵니다. 그런 다음 버퍼를 사용하여 파일 내용을 모두 복사하십시오.

public static final void copy(InputStream from, OutputStream to) 
    throws IOException 
{ 
    byte [] buffer = new byte[1024]; 
    int count = from.read(buffer); 

    while (count > 0) { 
     to.write(buffer, 0, count); 
     count = from.read(buffer); 
    } 

    to.flush(); 
} 
+0

답장을 보내 주셔서 감사합니다 ..... 위와 같이 같은 방식으로 이미지를 업로드하고 있습니다. 시도했을 때 문제가 발생합니다. 1 MB 크기의 이미지를 입력 스트림을 만들려면 ... 다음 메모리 예외가 ....이 모든 솔루션을 던졌습니다. – mark

+0

inputStream을 여는 방법은 무엇입니까? Class.getResourceAsStream 또는 Connector.open? –

+0

InputStream inputStream = fileConnection.openInputStream(); 이렇게하면 입력 스트림이 열립니다. – mark

관련 문제