A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

登高望远

初级黑马

  • 黑马币:5

  • 帖子:7

  • 精华:0

  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, 下载次数: 11)

源代码

源代码

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

源代码

源代码

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
你把你输入的那两个路径名称 给我们贴出来吧  你的代码编译时没有出错  我觉得错误应该是路径有问题
我把你那两个两的路径认为的 设置了下 是可以成功的复制
回复 使用道具 举报
caijunsong 发表于 2014-4-9 23:53
你把你输入的那两个路径名称 给我们贴出来吧  你的代码编译时没有出错  我觉得错误应该是路径有问题
我把你 ...

c:\abc.txt d:\abc.txt       我写的是这样哈
回复 使用道具 举报
caijunsong 发表于 2014-4-9 23:53
你把你输入的那两个路径名称 给我们贴出来吧  你的代码编译时没有出错  我觉得错误应该是路径有问题
我把你 ...

而且很奇怪的是,我运行后,之前C盘里面的txt文件内容也被清空了呀
回复 使用道具 举报
你29行代码写错了,应该将“ output=new FileOutputStream(f1);  ”中的 f1 修改为 f2 才对。

回复 使用道具 举报
FileOutputStream打开文件时,如果不文件存在时会创建,存在该文件时会覆盖原有文件,当29行代码执行后,C盘文件被覆盖为新文件,里面当然没有内容了。

评分

参与人数 1黑马币 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
小歪 中级黑马 2014-4-11 21:58:36
7#
目测楼上正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马