文件未正确保存

时间:2012-02-22 09:41:41

标签: java android

我试图使用webservice获取图像并保存到SD卡。文件保存但我无法打开文件。一旦我打开文件,它说“无法加载图像”。以下是我的代码。

httpTransport.call(SOAP_ACTION, envelope);
Object response = envelope.getResponse();
test = response.toString();
Blob picture = org.hibernate.Hibernate.createBlob(test.replaceAll("-", "").getBytes());
String FILENAME = "voucher1.jpg"; 
File root = Environment.getExternalStorageDirectory();
FileOutputStream f = new FileOutputStream(new File(root, FILENAME));
InputStream x=picture.getBinaryStream();
int size=x.available();
byte b[]= new byte[size];
x.read(b);
f.write(b);
f.close();

请帮忙。感谢

2 个答案:

答案 0 :(得分:0)

我更改了格式..不使用网络服务我只是使用图片网址来检索图片并且有效...

我试试这个,它的工作正常。感谢。

URL url = new URL(fileURL);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream("/sdcard/caldophilus.jpg");
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();

答案 1 :(得分:-1)

我假设您需要调用 f.flush(),以便将所有数据写入流中文件。

f.flush();
f.close();