本文介绍了我从服务器端客户端传送图像文件,在读取图像文件我得到这个问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下code从套接字读取图像文件。它从服务器读取的所有字节,因为服务器和Android机文件的大小相同。当我打开这个文件,它不会打开文件并生成错误是损坏或文件太大。
公共位图fileReceived(InputStream为)
抛出FileNotFoundException异常,IOException异常{ 位图位图= NULL;
字符串BASEDIR = Environment.getExternalStorageDirectory()getAbsolutePath()。
字符串文件名=a.png;
字符串imageInSD = BASEDIR +文件分割符+文件名;
的System.out.println(imageInSD);
如果(是!= NULL){
FOS的FileOutputStream = NULL;
BOS的BufferedOutputStream = NULL;
尝试{ FOS =新的FileOutputStream(imageInSD);
BOS =新的BufferedOutputStream(FOS);
字节[] = aByte新的字节[1024];
INT读取动作; 而(真){
读取动作= is.read(aByte); bos.write(aByte,0,读取动作);
如果(is.available()== 0)
打破;
} bos.flush();
bos.close();
// is.reset(); //这里给出错误即--- SkImageDe codeR ::厂返回null
位= BitmapFactory.de codeFILE(imageInSD); }赶上(IOException异常前){
//做异常处理
Log.i(IMSERVICE,异常);
}
} 返回位图;
}
解决方案
不要使用的这一点,就不能可靠地工作!
该文档的状态:
Do it like:
while ( (bytesRead = is.read(aByte)) > 0 ) {
bos.write(aByte, 0, bytesRead);
}
这篇关于我从服务器端客户端传送图像文件,在读取图像文件我得到这个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!