程序如下
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class TestLineNumbering { /**
 * @param args
 */
public static void main(String[] args) {
//args=new String[100];
new TestLineNumbering(args[0]);
} String fileName;
File out;
int row = 1;
BufferedInputStream bufferedInputStream = null;
FileOutputStream fileOutputStream = null;
public TestLineNumbering(String fileName)
{

if(!fileName.endsWith(".txt"))
{
fileName += ".txt";
}
fileName = "test/9_1/" + fileName;//测试文件夹

out = new File(fileName);
bufferedInputStream = new BufferedInputStream(System.in);
try {
fileOutputStream = new FileOutputStream(out);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
System.out.println("请输入文件内容(以Ctrl+Z结束):");
try {
int temp;
fileOutputStream.write((Integer.toString(1) + " ").getBytes());
while((temp =bufferedInputStream.read()) != -1)
{
fileOutputStream.write(temp);
if(temp == '\n')
{
fileOutputStream.write((Integer.toString(++row) + " ").getBytes());
}
}
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
if(bufferedInputStream != null)
{
bufferedInputStream.close();
}
if(fileOutputStream != null)
{
fileOutputStream.close();
}
System.out.println("文件保存成功!");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
为什么会给我报Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at exercise.TestLineNumbering.main(TestLineNumbering.java:16)
这个错呢?应该怎么修改才好?请各位大神多多帮忙啊!!谢谢啦!!!

解决方案 »

  1.   

    args[0]没有给参数,命令行输入例如:  
    javac  TestLineNumbering.java
    java  TestLineNumbering  7
      

  2.   

    new TestLineNumbering(args[0]);这一行是执行你的构造器的:
    public TestLineNumbering(String fileName),里面定义什么写什么就好了,起个文件名,例如aa,随你。
    变成new TestLineNumbering(aa);就对了
      

  3.   

    new TestLineNumbering("aa");刚刚忘加引号了。
      

  4.   

    new TestLineNumbering(args[0]);这一行
      

  5.   

    不用改代码,在输入命令时后面加上文件名:
    java  TestLineNumbering out.txt
      

  6.   

    如果是在控制台运行的话,就是这样运行,当然首先你的转到当前路径:比如说你的java文件在F盘的myFun目录下,命令行    
    F:
    cd myFun
    javac  TestLineNumbering.java
    java  TestLineNumbering  7
    这样就OK了。
    如果是在eclipse下使用在这里使用:Run->Run configuration..->Araguments添加参数
      

  7.   

    来看看   异常是数组index  报0  你也不想想 你把数组放哪 文件  就直接执行那 文件 就行了
      

  8.   

    我刚刚在控制台运行了一下,运行到javac那一行是没有问题的,可是到下一行就又有问题了!怎么回事呢?
    截图如下:
      

  9.   

     找不到该类文件,运行了上一行后有class文件出现吗
      

  10.   

    javac那一行吗?我把那一行敲进去之后点回车没有什么显示,这不是编译通过的含义吗?
      

  11.   


    那你能不能再告诉我一下,如果我用eclipse输入的话,具体应该在参数里面输什么内容
      

  12.   

    这个程序看不怎么懂,只知道你参数传错了!应该传个String类型的参数!
    我想问下,为什么按了Ctrl+Z就可以保存呀。