黑马程序员技术交流社区
标题:
io练习问题
[打印本页]
作者:
张文强
时间:
2012-5-31 20:57
标题:
io练习问题
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) 牛人分析下哈
作者:
程序猿
时间:
2012-5-31 21:28
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("文件自制不成功");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2