急,java ,数组初始化 ,字符处理,ArrayIndexOutOfBoundsException问题

想把一篇文章的所有文字,按照每行为单位,分别存在一个char[]中。
定义储存的数组为 char[] passage[];
也就是每行都是一个char[],可以理解为一个二维数组。
行标记 int row=0;

赋值: public void getSourceStr()throws Exception{
try{
in=new BufferedReader(new FileReader(fileName));
while((source=in.readLine())!=null){
passage[row]=source.toCharArray();//将第row行读入的流存储为char[]
row++;
}
}

注释的行出现ArrayIndexOutOfBoundsException异常。

求助:在这种情况下应该怎样初始化passage?
标题打错了,不是ArrayIndexOutOfBoundsException异常,应该是java.lang.NullPointerException。
最新回答
我是太阳啊

2024-11-06 06:14:22

这种情况你都不知道有多少行,用LIST替代ARRAY
List<char[]> list = new ArrayList<char[]>();

try{
in=new BufferedReader(new FileReader(fileName));
while((source=in.readLine())!=null){
list.add(source.toCharArray());
// passage[row]=source.toCharArray();//将第row行读入的流存储为char[]
row++;
}
}
蓝莓格格巫

2024-11-06 02:57:34

java.lang.NullPointerException 出现这种异常肯定是你的数组没有初始化用空对象去装数据。
一个文件谁也不知道他到底有多少行,所以你没有必要用char来装。