黑马程序员技术交流社区

标题: 实现文件的copy,为何第一种方式错误?请看红色部分,有差异么? [打印本页]

作者: 安日成    时间: 2015-4-24 20:16
标题: 实现文件的copy,为何第一种方式错误?请看红色部分,有差异么?
综合实例:copy文件的实现
错误:
import java.io.*;
public class CopyDemo{
     public static void main(String [] args) throws Exception{
              if(args.length!=2){
                       System.out.println("您输入的参数有误");
                           System.out.println("正确的输入方法为i:java  CopyDemo  源文件  目标文件");
                           System.exit(1);
                  }
                  File f1=new File(args[0]);
                  File f2=new File(args[1]);
               
                  if(!f1.exists()){
                      System.out.println("源文件不存在");
                          System.exit(1);
                  }
                  InputStream in=new FileInputStream(f1);
                  OutputStream out=new FileOutputStream(f2);


                  //FileWriter out=new FileWriter(f1);//异常
                  //FileReader in=new FileReader(f2);// 异常

                     
                  if(out!=null&&in!=null){// 输入流输出流都已经准备好了
                        while(in.read()!=-1){
                                    out.write(in.read());
                      }

                          System.out.println("copy succeed!");
                  }
                  in.close();
                  out.close();

         }
}
运行的结果为:
两个文件中的内容不一致

import java.io.*;
public class CopyDemo{
     public static void main(String [] args) throws Exception{
              if(args.length!=2){
                       System.out.println("您输入的参数有误");
                           System.out.println("正确的输入方法为i:java  CopyDemo  源文件  目标文件");
                           System.exit(1);
                  }
                  File f1=new File(args[0]);
                  File f2=new File(args[1]);
               
                  if(!f1.exists()){
                      System.out.println("源文件不存在");
                          System.exit(1);
                  }
                  InputStream in=new FileInputStream(f1);
                  OutputStream out=new FileOutputStream(f2);


                  //FileWriter out=new FileWriter(f1);//异常
                  //FileReader in=new FileReader(f2);// 异常

                     
                  if(out!=null&&in!=null){// 输入流输出流都已经准备好了
                          int temp=0;
                      while((temp=in.read())!=-1){
                                    
                         out.write(temp);
                      }

                          System.out.println("copy succeed!");
                  }
                  in.close();
                  out.close();

         }
}
运行结果为:
两个文件中的内容一致




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