如何在j2me中处理大小超过1 mb的图像

时间:2013-04-19 12:07:56

标签: java-me

我正在开发一个将图像从j2me mobile上传到服务器的应用程序。与在j2me手机中一样,我们只分配了1 mb的堆大小,因此当我尝试上传大于1 mb的图像时,它会抛出 OutOfMemory 异常。有没有办法在j2me手机中处理这个问题。

感谢。

1 个答案:

答案 0 :(得分: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();
}