黑马程序员技术交流社区

标题: 关于cope图片的想法 [打印本页]

作者: 胡刚涛    时间: 2012-8-17 22:53
标题: 关于cope图片的想法
在cope图片的过程中应该用到字节流,但是在字符流的子类存在两个子类InputStreamReader类将字节流转换成字符流和OutputStreamWriter类字符流通向字节流的桥梁。所以写了如下代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class PictureCope {
/**
  * @param args
  */
public static void main(String[] args)throws IOException {
  // TODO Auto-generated method stub
  OutputStream ops=new FileOutputStream("d:\\34cope.jpg");
  InputStream ins=new FileInputStream("d:\\34.jpg");
  BufferedReader bur=new BufferedReader(new InputStreamReader(ins));//将字节流转换成字符流
  BufferedWriter buw=new BufferedWriter(new OutputStreamWriter(ops));//再将字符流转换成字节流
  String len=null;
  while((len=bur.readLine())!=null){
   buw.write(len);
   buw.newLine();
   buw.flush();
  }
  ops.close();
  ins.close();
}
我的思路是先将字节的转换成字符再转回来,这样不就可以用字符流来拷贝图片,同时用到缓冲区加快复制的效率,为什么的得到图片不一样,
他们转换不都是运用默认的一套编码表吗?哪到不是同一编码表,还是别的原因?求解释一下!!!

作者: 李知伦    时间: 2012-8-18 00:31
BufferedWriter buw=new BufferedWriter(new OutputStreamWriter(ops));//再将字符流转换成字节流
这句没有将字符流转换成字节流吧,只是与Input对应的缓冲字符流

而且图片是以2进制码形式存储的,字符流没法正常实现读取和存储

只有当已知数据属于字符流的时候,才用InputStreamReader和OutputStreamWriter来转换,完成高效率的读写




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2