我对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] 删除。
我来说两句