DataInputStream dataInputStream = new DataInputStream(
                           new FileInputStream(args[0]));
我照书上说的这样创建了一个数据输入流 .跟着就编译都米出现问题,一运行就出现了问题(代码我只给出创建流的代码):
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at onlyfun.caterpillar.DataStreamDemo.main(DataStreamDemo.java:14)跟着问了朋友,它说我运行时要在后面加一个文件名 于是我加了一个da.txt文件 
java onlyfun.caterpillar.DataStreamDemo就可以运行了。但是我想找那个da.txt文件却找不着。那是问什么吗?
还有我想问问 args[0]这个是什么来的啊 ? 为什么在创建file的时候加了这个上去 
不是应该在一个文件名创建的吗?或者一个目录+文件名 。这个又是什么来的?
请大家帮帮我解决问题,谢谢.....

解决方案 »

  1.   

    怎么会找不到呢,你在该类所在的路径下好好找找看args[]  命令行参数,跟C里面一样的
    如果你使用的话,在Run菜单里打开open run dialog,电击(x)=arguments
    里面填写的就是文件目录路径,例如:
    "D:\data.txt"
      

  2.   

    main(String[] args)
    String 型数组args就是main方法的参数,args[0]就是参数数组的第一个元素而args参数是运行时就的参数:比如:
    java xxx a b c
    这里就有一个参数数组args,值为args[0]=a,args[1]=b,args[2]=c;创建file时加这个是因为在当前目录下没有以args[0]命名的文件