本帖最后由 周恺 于 2012-7-20 21:45 编辑
BufferedReader,BufferedWriter是带缓冲区的字符IO流,怎么可以用来复制图片呢?图片文件是由字节文件.你使用字符io流来操作,其中还经过编码和解码的过程,这个过程是会造成字节丢失的.补要用BufferedRead和BufferedWrite.把他们换成BufferedInputStream,和BufferedOutputStream就可以了- public class Copy {
- public static void main(String[] args) throws IOException {
- BufferedInputStream br=new BufferedReader(new InputStreamReader(new FileInputStream("d:\\照片\\a.jpg")));//输入流换成BufferedInputStream
- BufferedOutputStream bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\b.jpg")));//输出流换成 BufferedOutputStream
- // String line=null;
- int length=-1;//设定变量,获取字节数组里的有效数据长度
- byte[] buf=new byte[1024];//定义缓冲区.
- while((length=br.read(buf)))!=null){//这里也改一下
- bw.write(byte,0,length);
- }
- bw.close();
- br.close();
- }
- }
复制代码 |