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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 坚持不懈 中级黑马   /  2012-12-18 20:17  /  1390 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args)throws Exception
  5.         {
  6.                 if(args.length!=2)
  7.                 {
  8.                         System.out.println("语法命令不正确");
  9.                         System.exit(1);
  10.                 }
  11.                 File file1=new File(args[0]);
  12.                 if(file1.exists())//如果原文件存在
  13.                 {
  14.                         File file2=new File(args[1]);
  15.                         InputStream input=new FileInputStream(file1);
  16.                         OutputStream output=new FileOutputStream(file2);
  17.                         int temp=0;
  18.                         while((temp=input.read())!=0)
  19.                         {
  20.                                 output.write(temp);
  21.                         }
  22.                         input.close();
  23.                         output.close();
  24.                         System.out.println("文件拷贝完成");
  25.                 }
  26.         }
  27. }
复制代码
编译 直接提示语法命令不正确.  以下代码没有被执行?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
while((temp=input.read())!=-1)
                        {
                                output.write(temp);
                        }
回复 使用道具 举报
查看帮助文档咱们可以看到:
public int read()
         throws IOException
如果已到达文件末尾,则返回 -1。
所以刚刚你的程序肯定是个死循环的...因为他永远不可能等于0对不...
回复 使用道具 举报
package day11;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class Demo {
         
            public static void main(String[] args)throws Exception
         
                {
         
                        if(args.length!=2)
         
                        {
         
                                System.out.println("语法命令不正确");
         
                              //  System.exit(1);
                               // return;//这里 这两条语句没有什么影响,用哪个都没关系
         
                        }
       
                      
                        File file1=new File(args[0]);//这里的参数是自己输入进去的,必须是文件的路径名,必须存在文件名
                        
                        System.out.println(file1.getName());//这是我自己加上的,
                        if(file1.exists())//如果原文件存在
         
                        {
                               
                                File file2=new File(args[1]);
                                System.out.println(file2.getName());
                                InputStream input=new FileInputStream(args[0]);
                               
                                OutputStream output=new FileOutputStream(args[1]);
                               
                                int temp=0;
         
                                while((temp=input.read())!=-1)
         
                                {
         
                                        output.write(temp);
                                        output.flush();
         
                                }
                               
                                input.close();
         
                                output.close();
         
                                System.out.println("文件拷贝完成");
         
                        }
         
                }
         
        }

D:\myeclipseworkplace\workplace\day1\src\day11\1.txt D:\myeclipseworkplace\workplace\day1\src\day11\2.txt这是我输入的参数,运行很好,结果是
1.txt
2.txt
文件拷贝完成

文件必须是存在的,如果没有存在,会报异常,而你又把异常抛出去了
回复 使用道具 举报
还要判断一下文件是不是存在,可以调用file.creatNewFile()方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马