.charAt()上的OutOfBoundsException,寻找解释

时间:2015-04-05 04:15:27

标签: java arrays indexoutofboundsexception

public  static void getImage() throws FileNotFoundException
{
    Scanner input = new Scanner(new File(fileName));
    String element = input.nextLine( );//

    // tokenize string with " " as the delimiter
    StringTokenizer tokenizer = new StringTokenizer( element, " " );

    // store y and x variables
    imageHeight = Integer.parseInt( tokenizer.nextToken( ) );
    imageWidth = Integer.parseInt( tokenizer.nextToken( ) );
    System.out.println(imageHeight);
    System.out.println(imageWidth);

    buffer = new char[100] [100];
    System.out.println( "Getting Image ..." ); 


for ( int i = 0; i < imageHeight; i++ ) 
{ 

    element = input.nextLine();
    for ( int j = 0; j < imageWidth; j++ ) 
    {

    buffer[i][j] = element.charAt(j);

    }

}

    input.close( );

}

整个代码编译,但上面是整个代码的一部分,当我运行它时给我错误。代码的目标是创建一个多维数组,在打印时它会显示由文本文件中的字符组成的图像。它通过解析指定的.txt文件来获取索引。前2个读取令牌是定义数组大小的数字。然后它继续读取.txt文件并将字符分配给原始文本文件中它们所在位置的数组,最终创建一个由字符组成的图像。

这部分代码应该将文件中的所有字符放入数组中,但是我得到运行错误。请帮助!

1 个答案:

答案 0 :(得分:0)

您正尝试在空位置获取char。在访问特定位置(j)之前添加一些验证。

element.lenght()&gt; 0