InputStream.read、OutputStream.write、二进制文件读写及文件流末尾判断_liuhongbin2007_新浪博客
InputStream.read、OutputStream.write、二进制文件读写及文件流末尾判断
(2011-01-03 20:38:46)
转载▼
标签:
杂谈
分类: 技术
原文地址:
InputStream.read、OutputStream.write、二进制文件读写及文件流末尾判断
http://shuiranyue.blog.163.com/blog/static/42199034200910115441926/
InputStream.read、OutputStream.write、Reader.read、Writer. write区别
http://jiangzhengjun.javaeye.com/blog/510977
KAI Square工程师陈易凡email指点:
您的代码看起来不正确。JPEG是binary数据,
但您采用的BufferedReader及FileWriter仅适合用在character数据上。在InputStreamReader把binary数据转为character数据的过程中,有些原有的binary数据将会丧失。因此,您应该从httpResponse.getEntity().getContent()这个InputStream把binary数据直接读出来,再由FileOutputStream把数据写入文件里。
Android 服务器JPEG图片文件接收:
File outFile = new File("/sdcard/pic/tmp.jpg");
FileOutputStream fos = new FileOutputStream(outFile);
try {
InputStream is = httpResponse.getEntity().getContent();
byte[] byteArr = new byte[1024];
//读取的字节数
int readCount = is.read(byteArr);
//如果已到达文件末尾,则返回-1
while (readCount != -1) {
fos.write(byteArr, 0, readCount);
readCount = is.read(byteArr);
}
is.close();
fos.flush();
fos.close();
}catch(IOException e){
e.printStackTrace();
}