关于超界事件
如下程序的18行
FileInputStream fileInputStream= new FileInputStream(new File(args[0]));;
程序编译后,出错信息如下:
java.lang.ArrayIndexOutOfBoundsException: 0 at FileIOStream.main(FileIOStream.java:18)
请问这个怎么解决,是不是这样创建一个文件输入流会出现越界现象。
import java.io.File;
import java.io.FileInputStream;
import
java.io.FileNotFoundException;
import java.io.FileOutputStream;
import
java.io.IOException;
public class FileIOStream {
/**
* @param args
* @throws
FileNotFoundException */
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
byte[] buffer=new byte[1024];
FileInputStream fileInputStream= new FileInputStream(new File(args[0]));;
FileOutputStream fileOutputStream=new FileOutputStream(new File(args[1]));
System.out.println("复制文件:"+fileInputStream.available()+"字节");
while(true){
if (fileInputStream.available()<1024) {
int remain=-1;
while ((remain=fileInputStream.read())!=-1) {
fileOutputStream.write(remain);
}
break;
} else {
fileInputStream.read(buffer);
fileOutputStream.write(buffer);
}
}
fileInputStream.close();
fileOutputStream.close();
System.out.println("复制完成");
} catch (File
NotFoundException e) {
// TODO: handle exception
e.printStackTrace();
} catch (
ArrayIndexOutOfBoundsException e) {
// TODO: handle exception
e.printStackTrace();
} catch (
IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
------解决方案--------------------
FileInputStream fileInputStream= new FileInputStream(new File(args[0]));;
args[0]有值嘛,是一个文件的路径吗
如果没有当然要报
数组越界啦 ,找个正确的文件路径放上去再读取一下试试看
------解决方案--------------------看一下args[0]的值,然后调试分析一下
越界一般不是什么大问题
祝你好运
------解决方案--------------------个人感觉像是参数传的不对,args[0]的值没有取到。。。
------解决方案--------------------如果实在不行就Debug跟一下吧。
或者出力一下log也可以。