HashMap 中的空指针异常

乌特卡什·阿特里

我对java很陌生。我试图从文件中获取输入,并将文件中的参数设置为哈希映射键和值。但是它在我从行中拆分参数的行上返回空指针异常。这是我的代码:

public class hashtable{
    public static void main(String[] args) throws Exception{
        HashMap nodes = new HashMap<String,String>();
        String filename = args[0];
        FileReader file = null;
        BufferedReader reader = null;
        try{
          file = new FileReader(filename);
          reader = new BufferedReader(file);
          String line;
          line = reader.readLine();
            while(line != null){
             line = reader.readLine();
             String []arguments = line.split("\\s+");
             nodes.put(arguments[2],arguments[1]);
            }
        }
        catch(IOException e){}
        finally{
          reader.close();
        } 

        for(int i = 0 ; i < 5;i++){
            System.out.println(nodes.get(i));
        }
    }
}

我哪里错了?任何帮助,将不胜感激。

什莫塞尔

您正在检查第 1 行是否不为空,然后您继续阅读并改用第 2 行。将 next 移动readLine()到循环的末尾:

line = reader.readLine();
while(line != null){
    String []arguments = line.split("\\s+");
    nodes.put(arguments[2],arguments[1]);
    line = reader.readLine();
}

或者,更传统地,您可以将两个readLine()语句合并到循环条件中:

while((line = reader.readLine()) != null) {

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章