【发布时间】:2014-10-31 08:18:35
【问题描述】:
我有一个文本文件,每行都有一个数字。
0
55
3
15
63
8
0
-8
9
89
504
32
我有一个Car,它接受三个参数:
- 起始里程表读数
- 最后的里程表读数
- 升
文本文件中的第一行对应于里程表的起始读数。
二是终读。
第三个是升。
第四个是第二个Car等的起始里程表读数。
我需要读取文本文件,创建一个对象,并将这个参数传递给汽车。
对于car3 (0, -8, 9),有一个负数,因此整个集合被忽略,(89, 504, 32) 变为car3。
我已经提到Anubian Noob's answer;到目前为止,这是我的代码:
final String INPUT_FILE = "data.txt";
final String OUTPUT_FILE = "report.txt";
BufferedReader inputFile = new BufferedReader (new FileReader (INPUT_FILE));
BufferedWriter outputFile = new BufferedWriter (new FileWriter (OUTPUT_FILE));
LineNumberReader lineNumber = new LineNumberReader (new FileReader (INPUT_FILE));
lineNumber.skip(Long.MAX_VALUE);
int length = lineNumber.getLineNumber();
lineNumber.close();
String line = inputFile.readLine();
Car[] car = new Car[length/3];
while (line != null)
{
for (int i = 0; i < length/3; i += 3)
{
int startReading = Integer.parseInt(inputFile.readLine());
int endReading = Integer.parseInt(inputFile.readLine());
int liter = Integer.parseInt(inputFile.readLine());
car[i] = new Car (startKm, endKm, litre);
}
}
inputFile.close();
outputFile.close();
在线int liter = Integer.parseInt(inputFile.readLine());我得到以下错误:
java.lang.NumberFormatException: null
null (in java.lang.Integer)
如何将这三条信息存储到其各自的对象中?
*注意:文本文件中没有固定的行数,我们必须使用数组。
【问题讨论】:
-
这意味着您已到达文件末尾。为什么同一个文件有两个
Reader实例?只需使用Files.readAllLines。 -
在进行整数转换之前尝试打印当前行的日志,以便您确切知道失败时是哪一行。除此之外,和鲍里斯一样的评论:你为什么不只保留 lineNumber 作为你的读者?
-
我认为 BufferedReader 和 LineNumberReader 是不同的。如果我只留下
LineNumberReader并将inputFile替换为lineNumber,我会在String line = inputFile.readLine();得到一个错误它说java.io.IOException: Steam close (in java.io.BufferedReader
标签: java