我正在将图像文件从iPhone应用程序发送到http Post应用程序。 Post应用程序是一个java restful Web服务,它接受Post请求。我有Post方法接收一个字节数组,然后将其写入这样的文件:
private void writeToFile(byte[] str) {
String strFilePath = "/Users/j/Desktop/joe.png";
try
{
FileOutputStream fos = new FileOutputStream(strFilePath);
fos.write(str);
fos.close();
}
}
文件成功写入我的本地磁盘,但是当我尝试打开文件时,它无法查看。我收到一个错误,它无法打开并可能已损坏。有谁知道我为什么看不到这张图片?
答案 0 :(得分:0)
如果没有看到更多代码,很难给你建议,但如果你所做的只是将数据直接写入文件,你也可以跳过将其存储在字节数组中并直接将其传输到输出流,就像在这个非常简单的例子中一样:
FileOutputStream out = new FileOutputStream( "myfile.jpg" );
InputStream in = request.getInputStream();
while( ( int ch = in.read() ) != -1 ){
out.write( ch );
}
如果不看更多代码,很难提供更具体的建议。
答案 1 :(得分:0)
对于文件处理程序的丢弃,可能存在某种特殊情况。关闭文件流后,可能值得尝试调用垃圾收集器。
Runtime.getRuntime().gc();
它曾帮助我在win7上播放文件。
最后,您还可以尝试通过计算md5hash来验证是否正在发送rigth数据,但http不应该丢失数据。