[英]Why am i getting NullPointerException when i try to save image?
[英]Why am I getting a NullPointerException when I try to read input using BufferedReader?
我正在尝试在一行中输入多个 integer 并将所有这些整数存储到ArrayList
中。 这是我的代码:
String[] input = new String[5];
ArrayList<Integer> A=new ArrayList<>(5);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
while(br.readLine()!=null)
input = br.readLine().split(" ");
}
catch(Exception e){
System.out.print(e);
}
System.out.println(Arrays.toString(input));
输入是这样的:
2 2 1 3 1
但是当我执行代码时,我在这一行得到 NullPointerException input = br.readLine().split(" "); . 我怎样才能解决这个问题?
编辑:尝试使用扫描仪接受这样的输入:
String str="";
Scanner s=new Scanner(System.in);
String[] input = new String[5];
ArrayList<Integer> A=new ArrayList<>(5);
while(s.hasNext())
str=s.nextLine();
input=str.split(" ");
System.out.println(Arrays.toString(input)); //[]
现在我的数组完全是空的!!
您有两次调用br.readLine()
。 如果行是 null,第一个调用将中止循环,第二个调用仍然可以读取可以是 null 的下一行(指示文件结束)。 另一个问题是第一个br.readLine()
返回的行丢失了。
正确的方法是:
String line;
while ((line = br.readLine()) != null) {
String[] input = line.split(" ");
}
输入数字之间应该正好有 1 个空格。 此外,在运行此代码时,您不应以空格开始输入或将 2 个空格连接在一起。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.