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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张文强 中级黑马   /  2012-5-31 20:57  /  1479 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
public class CopyFilesUnit {
  public static void main(String[] args){
  String scrFile=args[0];
  String destFile=args[1];
  //fileCopy(scrFile,destFile);
  if(fileCopy(scrFile,destFile)){
  System.out.println("文件自制成功");
  }else{
  System.out.println("文件自制不成功");
  }
   
  }
public static boolean fileCopy(String scrScr,String destScr){
  File scrFile,destFile;
  FileInputStream in=null;
  FileOutputStream out=null;
   
  boolean flag=false;
  try{
  scrFile=new File(scrScr);
  destFile=new File(destScr);
  if(!destFile.exists()){
  destFile.createNewFile();
  }
  in=new FileInputStream(scrFile);
  out=new FileOutputStream(destFile);
  byte[] butf=new byte[1024];
  int len;
  String str=null;
  //StringBuffer str=new StringBuffer();
  while((len=in.read(butf))!=-1){
  str=new String(butf,0,len);
   out.write(butf);
  }
  //String st=str.toString();
  byte[] buff=str.getBytes();
  out.write(buff);
  in.close();
  out.close();
  flag= true;
  }catch(IOException e){
   
  }
  return flag;
}
}


提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at CopyFilesUnit.main(CopyFilesUnit.java:4)  牛人分析下哈

1 个回复

倒序浏览
String scrFile=args[0];
  String destFile=args[1];
你应该是运行的时候没有加参数吧,你这两句都有错误。
因为你没加参数的时候是获取不到数据的。你直接访问第一个和第二个元素就会出现数组越界,
前面应该加上
while(args.length!=0)
将后面的语句包到while循环里

如果是针对你这个程序应该是
while(args.length>=2)

public class CopyFilesUnit {
  public static void main(String[] args){
while(args.length>=2)
{
  String scrFile=args[0];
  String destFile=args[1];
  //fileCopy(scrFile,destFile);
  if(fileCopy(scrFile,destFile)){
  System.out.println("文件自制成功");
  }else{
  System.out.println("文件自制不成功");
  }
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马