【发布时间】:2020-09-22 04:18:10
【问题描述】:
我很困惑。我试图将文本文件的 10 行中的 10 个整数放入 int[] 中。我尝试了几种不同的方法,但我最近的尝试是对文件的每一行在 BufferedReader.readLine() 上使用 for 循环和 parseInt。这每次都返回 NumberFormatException。
public class InversionCounter {
static int[] fileToArray(String filename) {
File file = new File(filename);
try ( BufferedReader br = new BufferedReader(new FileReader(file))) {
int numOfLine = Integer.parseInt(br.readLine());
int[] ourArray = new int[10];
for (int i = 0; i < ourArray.length; i++) {
ourArray[i] = numOfLine;
numOfLine = Integer.parseInt(br.readLine());
}
return ourArray;
} catch (NumberFormatException e) {
System.out.println("NumberFormatException");
} catch (FileNotFoundException e) {
System.out.println("File not found");
} catch (IOException e) {
System.out.println("IO Exception");
}
return null;
}
public static void main(String[] args) throws IOException {
fileToArray("/home/paris/coolfile");
}
}
错误:
Exception in thread "main" java.lang.NumberFormatException: null
at java.base/java.lang.Integer.parseInt(Integer.java:614)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at InversionCounter.fileToArray(InversionCounter.java:16)
at InversionCounter.main(InversionCounter.java:30)
文件就是这样的:
45
67
87
76
7
4
5
23
5675
3
【问题讨论】:
-
对不起,返回的 null 应该在 catch 块内。
标签: java io bufferedreader