Web 文本上的 BufferedReader 空指针异常
BufferedReader Nullpointer Exception on web txt
我尝试做一个简单的 class 读取在线 .txt 的内容并将其存储在 DataClass 中。
我在 while 循环的第一个变量赋值中以某种方式得到了 Nullpointer 异常,尽管 line 被打印为“4”。
有人知道我代码中的问题吗?
public class GetFile {
public static List<Log> getFile(){
URL url = null;
List<Log> list = new ArrayList<Log>();
try {
url = new URL("http://test.net/test.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = in.readLine()) != null) {
Log log = new Log();
System.out.println("Line is: " + line);
**-->log.day = Integer.getInteger(line);<--**
line = in.readLine();
log.month = Integer.getInteger(line);
line = in.readLine();
log.year = Integer.getInteger(line);
line = in.readLine();
log.hour = Integer.getInteger(line);
line = in.readLine();
log.minute = Integer.getInteger(line);
line = in.readLine();
log.hum = Float.parseFloat(line);
line = in.readLine();
log.temp = Float.parseFloat(line);
list.add(log);
System.out.println("Item added");
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e1) {
e1.printStackTrace();
}
return list;
}
}
.txt 的内容如下:
4
2
2016
22
14
49.5999984741
19.2999992371
4
2
2016
22
14
49.5999984741
19.2999992371
4
2
2016
...
看起来和本期一样:
Why does int num = Integer.getInteger("123") throw NullPointerException?
基本上:"Integer getInteger(String) doesn't do what you think it does"
您应该使用的方法是 parseInt()。尝试更改此行:
log.day = Integer.getInteger(line);
对此:
log.day = Integer.parseInt(line);
我尝试做一个简单的 class 读取在线 .txt 的内容并将其存储在 DataClass 中。
我在 while 循环的第一个变量赋值中以某种方式得到了 Nullpointer 异常,尽管 line 被打印为“4”。
有人知道我代码中的问题吗?
public class GetFile {
public static List<Log> getFile(){
URL url = null;
List<Log> list = new ArrayList<Log>();
try {
url = new URL("http://test.net/test.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = in.readLine()) != null) {
Log log = new Log();
System.out.println("Line is: " + line);
**-->log.day = Integer.getInteger(line);<--**
line = in.readLine();
log.month = Integer.getInteger(line);
line = in.readLine();
log.year = Integer.getInteger(line);
line = in.readLine();
log.hour = Integer.getInteger(line);
line = in.readLine();
log.minute = Integer.getInteger(line);
line = in.readLine();
log.hum = Float.parseFloat(line);
line = in.readLine();
log.temp = Float.parseFloat(line);
list.add(log);
System.out.println("Item added");
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e1) {
e1.printStackTrace();
}
return list;
}
}
.txt 的内容如下:
4
2
2016
22
14
49.5999984741
19.2999992371
4
2
2016
22
14
49.5999984741
19.2999992371
4
2
2016
...
看起来和本期一样:
Why does int num = Integer.getInteger("123") throw NullPointerException?
基本上:"Integer getInteger(String) doesn't do what you think it does"
您应该使用的方法是 parseInt()。尝试更改此行:
log.day = Integer.getInteger(line);
对此:
log.day = Integer.parseInt(line);