我试图使用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();
请帮忙。感谢
答案 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();