黑马程序员技术交流社区

标题: 关于文件复制的问题(编译已经通过) [打印本页]

作者: 登高望远    时间: 2014-4-9 19:19
标题: 关于文件复制的问题(编译已经通过)
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. public class Copy {
  9.         public static void main(String[] args){
  10.                 if(args.length!=2){
  11.                         System.out.println("参数错误");
  12.                         System.out.println("例子:java Copy 源路径 目标路径");
  13.                         System.exit(1);
  14.                 }
  15.                 File f1=new File(args[0]);
  16.                 File f2=new File(args[1]);
  17.                 if(!f1.exists()){
  18.                         System.out.println("file not exit");
  19.                         System.exit(1);
  20.                 }
  21.                 InputStream input=null;
  22.                 OutputStream output=null;
  23.                 try{
  24.                         input=new FileInputStream(f1);
  25.                 }catch(FileNotFoundException e){
  26.                         e.printStackTrace();
  27.                 }
  28.                 try{
  29.                         output=new FileOutputStream(f1);
  30.                 }catch(FileNotFoundException e){
  31.                         e.printStackTrace();
  32.                 }
  33.                 if(input!=null&&output!=null){
  34.                         int temp=0;
  35.                         try{
  36.                                 while((temp=input.read())!=-1){
  37.                                         output.write(temp);
  38.                                 }
  39.                                 System.out.println("Copy Already!");
  40.                         }catch(IOException e){
  41.                                 e.printStackTrace();
  42.                                 System.out.println("Copy Failed");
  43.                         }
  44.                         try{
  45.                                 input.close();
  46.                                 output.close();
  47.                         }catch(IOException e){
  48.                                 e.printStackTrace();
  49.                
  50.                                 }
  51.                         }
  52.                 }
  53.         }


复制代码
编译是没问题了。但是不知道为啥D盘里的abc.txt没有内容呀。C盘是有1K内容的。




帖子01.png (119.07 KB, 下载次数: 27)

源代码

源代码

帖子02.png (33.47 KB, 下载次数: 30)

源代码

源代码

作者: caijunsong    时间: 2014-4-9 23:53
你把你输入的那两个路径名称 给我们贴出来吧  你的代码编译时没有出错  我觉得错误应该是路径有问题
我把你那两个两的路径认为的 设置了下 是可以成功的复制
作者: 登高望远    时间: 2014-4-10 14:29
caijunsong 发表于 2014-4-9 23:53
你把你输入的那两个路径名称 给我们贴出来吧  你的代码编译时没有出错  我觉得错误应该是路径有问题
我把你 ...

c:\abc.txt d:\abc.txt       我写的是这样哈
作者: 登高望远    时间: 2014-4-10 14:40
caijunsong 发表于 2014-4-9 23:53
你把你输入的那两个路径名称 给我们贴出来吧  你的代码编译时没有出错  我觉得错误应该是路径有问题
我把你 ...

而且很奇怪的是,我运行后,之前C盘里面的txt文件内容也被清空了呀
作者: 呆呆沙师妹    时间: 2014-4-11 21:14
你29行代码写错了,应该将“ output=new FileOutputStream(f1);  ”中的 f1 修改为 f2 才对。


作者: 呆呆沙师妹    时间: 2014-4-11 21:17
FileOutputStream打开文件时,如果不文件存在时会创建,存在该文件时会覆盖原有文件,当29行代码执行后,C盘文件被覆盖为新文件,里面当然没有内容了。
作者: 小歪    时间: 2014-4-11 21:58
目测楼上正解




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