黑马程序员技术交流社区

标题: 用缓冲区复制图片的问题 [打印本页]

作者: 朱辉    时间: 2012-3-3 11:18
标题: 用缓冲区复制图片的问题
  1. import java.io.*;
  2. public class copyPic {
  3.         public static void main(String[] args)
  4.         {
  5.                 methodCopyPic();
  6.                
  7.                
  8.         }
  9.                 public static void methodCopyPic(){
  10.                 BufferedInputStream bufis = null;
  11.                 BufferedOutputStream bufos = null;
  12.                 try{
  13.                         bufis = new BufferedInputStream(new FileInputStream("c:\\abc.jpg"));
  14.                         bufos = new BufferedOutputStream(new FileOutputStream("D:\\copy.jpg"));
  15.                         int by = 0;
  16.                         if((by = bufis.read())!=-1){
  17.                                 bufos.write(by);
  18.                                 bufos.flush();
  19.                         }
  20.                 }
  21.                 catch(IOException e){
  22.                         throw new RuntimeException("pic拷贝失败");
  23.                 }
  24.                 finally{
  25.                         try{
  26.                                 if(bufis != null){
  27.                                         bufis.close();
  28.                                 }
  29.                         }
  30.                         catch(IOException e){
  31.                                 throw new RuntimeException("读关闭失败");
  32.                         }
  33.                         try{
  34.                                 if(bufos != null){
  35.                                         bufos.close();
  36.                                 }
  37.                         }
  38.                         catch(IOException e){
  39.                                 throw new RuntimeException("写关闭失败");
  40.                         }
  41.                 }
  42.                 System.out.println("拷贝成功");
  43.                
  44.                
  45.         }
  46. }
复制代码

编译通过,但是运行的时候复制出来的文件就只有1个字节,大家帮忙看一下是哪儿的问题
作者: 李晓俊老师    时间: 2012-3-3 11:24
if((by = bufis.read())!=-1){

17.                                bufos.write(by);

18.                                bufos.flush();

19.                        }

这个我猜你是疏忽了,用while循环啊,,,你一定是疏忽了,
作者: 朱辉    时间: 2012-3-3 11:25
确实,多谢提醒了,确实是疏忽了,if只判断一次,看了半天都没照出来,多谢了{:soso_e183:}




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