Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将大图像从midlet发送到servlet的替代方案_Java_Mobile_Java Me_Midlet - Fatal编程技术网

Java 将大图像从midlet发送到servlet的替代方案

Java 将大图像从midlet发送到servlet的替代方案,java,mobile,java-me,midlet,Java,Mobile,Java Me,Midlet,为了防止OutOfMemoryErrors,从midlet向servlet发送大映像的替代方案有哪些?您能解释一下当前的方法是如何导致OutOfMemoryError的吗?将图像分割成更小的部分是我马上想到的。问题是我使用的是HTTP协议,我只能发送一个请求,因此,尽管我将图像分割成了部分,但我必须重建它才能写入OutputStream。当您将其写入OutputStream时,内存会被填满,并出现OutOfMemoryError问题。理论上,您可以发送任意数量的HTTP请求。你是说你有一个限制,

为了防止OutOfMemoryErrors,从midlet向servlet发送大映像的替代方案有哪些?

您能解释一下当前的方法是如何导致OutOfMemoryError的吗?将图像分割成更小的部分是我马上想到的。问题是我使用的是HTTP协议,我只能发送一个请求,因此,尽管我将图像分割成了部分,但我必须重建它才能写入OutputStream。当您将其写入OutputStream时,内存会被填满,并出现OutOfMemoryError问题。理论上,您可以发送任意数量的HTTP请求。你是说你有一个限制,你只能发送一个?重建映像或将其写入OutputStream时,是否会发生
OutOfMemoryError
?我没有想到
OutputStream.write
会导致OOME,因为它应该以块的形式发送数据,而不是一次发送所有数据。我知道我只能向服务器发送请求,然后接收响应。OutOutOfMemoryError位于OutputStream.write上。如果您希望以块的形式发送请求,则必须使用“传输编码=块”将其设置为“手动”。。。问题是诺基亚s40系列不支持它,除非在通过网络发送图像数据之前,
OutputStream
保留了所有图像数据,否则我希望它在写入时会刷新。这就是为什么我很惊讶当使用
OutputStream.write()
时会得到OOME。虽然诺基亚的API可能不直接支持分块编码,但您可以自己编写该层。您只需要访问输出流就可以设置正确的头并写入分块数据。