求大神帮忙!这个程序数组为什么会溢出?
程序如下
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)
这个错呢?应该怎么修改才好?请各位大神多多帮忙啊!!谢谢啦!!!
[最优解释]
具体是哪一行呢
[其他解释]
args[0]没有给参数,命令行输入例如:
javac TestLineNumbering.java
java TestLineNumbering 7
[其他解释]
new TestLineNumbering(args[0]);这一行是执行你的构造器的:
public TestLineNumbering(String fileName),里面定义什么写什么就好了,起个文件名,例如aa,随你。
变成new TestLineNumbering(aa);就对了。。。
[其他解释]
不用改代码,在输入命令时后面加上文件名:
java TestLineNumbering out.txt
[其他解释]
应该是你args[0]参数没有给
[其他解释]
new TestLineNumbering("aa");刚刚忘加引号了。
[其他解释]
new TestLineNumbering(args[0]);这一行
[其他解释]
应该怎么给出这个命令行参数呢?
[其他解释]
有点不大懂,这两行代码是要在哪里输入呢?
[其他解释]
如果是在控制台运行的话,就是这样运行,当然首先你的转到当前路径:比如说你的java文件在F盘的myFun目录下,命令行
F:
cd myFun
javac TestLineNumbering.java
java TestLineNumbering 7
这样就OK了。
如果是在eclipse下使用在这里使用:Run->Run configuration..->Araguments添加参数
[其他解释]
来看看 异常是数组index 报0 你也不想想 你把数组放哪 文件 就直接执行那 文件 就行了
[其他解释]
我刚刚在控制台运行了一下,运行到javac那一行是没有问题的,可是到下一行就又有问题了!怎么回事呢?
截图如下:
[其他解释]
找不到该类文件,运行了上一行后有class文件出现吗
[其他解释]
javac那一行吗?我把那一行敲进去之后点回车没有什么显示,这不是编译通过的含义吗?
[其他解释]
的确是你的编译的文件未找到,我用你的代码测试个一下,写文件的,没问题。你把代码重新拷贝换个地方,在试试。
[其他解释]
那你能不能再告诉我一下,如果我用eclipse输入的话,具体应该在参数里面输什么内容
[其他解释]
这个程序看不怎么懂,只知道你参数传错了!应该传个String类型的参数!
我想问下,为什么按了Ctrl+Z就可以保存呀。
[其他解释]
我成功啦!谢谢你!!!大神啊!!!