尝试将文本文件读入hashmap时出现ArrayIndexOutOfBoundsException

时间:2012-02-27 12:10:55

标签: java hashmap text-files

我有以下代码

while(((line = in.readLine()) != null))
                {
            String[] val = line.split("<>");

            courses.put(val[0], val[1]);

这是我正在尝试阅读的文字

1<>CIS 101-1
2<>CIS 101-2
3<>CIS 231-1
4<>CIS 231-2
5<>CIS 234-1
6<>CIS 234-2

我在尝试在

行运行程序时得到ArrayIndexOutOfBoundsException
 courses.put(val[0], val[1]);

任何人都可以提供任何帮助吗?

3 个答案:

答案 0 :(得分:2)

所有这些行都应该生成一个长度为2的数组。

确保文件末尾没有空行。

例如,您可以通过添加类似

的内容来跳过不符合模式的行
while (...) {

    if (!line.contains("<>"))
        continue;

    ...
}

答案 1 :(得分:2)

你的一条线上没有<>。可能是最后一行。在第6行之后你有一个行尾吗?您应该编写更多防御性代码 - 修剪您读取的每一行(以消除任何前导/尾随空格),然后忽略该行,如果它的长度为零。

答案 2 :(得分:0)

我想你最后读了一个空行,所以val[1]超出了数组的末尾!