try {
BufferedReader in = new BufferedReader(new FileReader("Encuestas/Encuesta_"+s+".txt"));
try {
this.id = Integer.valueOf(in.readLine());
this.genero = in.readLine();
this.fecha = in.readLine();
this.n_preguntas = Integer.valueOf(in.readLine());
for(int i = 0; i < this.n_preguntas; ++i){
Integer tip = Integer.valueOf(in.readLine());
String aux = "";
aux = in.readLine();
当我尝试读取Integer tip = Integer.valueOf(in.readLine());它不起作用,我不明白为什么......我之前也这样做,它正在发挥作用。 这是错误:
5. Leer encuestajava.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.valueOf(Integer.java:766)
at prop.dominio.Encuesta.leer(Encuesta.java:134)
at prop.dominio.driver_encuesta.main(driver_encuesta.java:219)
答案 0 :(得分:0)
只需像这样检查,
for(int i = 0; i < this.n_preguntas; ++i){
String line = null;
if((line = in.readLine()) != null){
Integer tip = Integer.valueOf(line);
String aux = "";
}
如果文件中只有十行,那么当您读取第11行时会出现此错误
答案 1 :(得分:0)
t = np.random.rand(1,30,5)
for i, n in zip(x_data, np.arange(len(x_data))):
l = len(x_data) - 29
if n < l:
t = np.vstack((t,x_data[n:n+30].reshape(1,30,5)))
t = np.delete(t, 0)
print(t[:2], t.shape)
>>> [ 0.38009933 0.82223491]
>>> (1691249,)
会抛出NullPointerException。检查文件的第一行是否为空。
答案 2 :(得分:0)
由于错误消息报告“null”,因此没有格式错误的输入,但没有(空行)。首先读取String值并对其进行测试是安全的,例如:
String intStr = in.readLine();
if(intStr != null) {
int i = Integer.valueOf(intStr);
}
else {
System.out.println("Empty line");
}
或者使用try-catch包围解析代码,这也有助于检测不能转换为整数的读取字符串。