【发布时间】:2020-05-06 21:26:05
【问题描述】:
我有一个小问题:
import java.io.*;
public class Ninteri {
public static void main(String[] args) throws IOException {
FileReader f = new FileReader("/Users/MyUser/Desktop/reader.txt");
BufferedReader b = new BufferedReader(f);
String s;
int x;
while (true) {
s = b.readLine();
if (s == null) {
break;
}
x = Integer.parseInt(s);
System.out.println(x);
}
}
}
例外:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1 2 3 4 5 6 7 8 "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at stream.Ninteri.main(Ninteri.java:22)
【问题讨论】:
-
文件长什么样?数字是用空格还是换行符分隔?
-
您不能将整个字符串 "1 2 3 4 5 6 7 8" 变成单个 int。您需要将其拆分为空格,然后解析该数组的各个元素
-
如果 s 是整行,你需要用 String[] snums = s.split("\\s"); 分解它
标签: java integer buffer filereader parseint