我有一个文本文件,每行都有一个数字。
0
55
3
15
63
8
0
-8
9
89
504
32
我有一个Car
接受三个参数的:
文本文件中的第一行对应于里程表的起始读数。
第二是最终阅读。
第三是公升。
第四个是第二个的起始里程表读数,以此类推Car
。
我需要读取文本文件,创建一个对象,并将此参数传递给汽车。
因为car3 (0, -8, 9)
有一个负数,所以整个集合将被忽略并(89, 504, 32)
变为car3
。
我已经提到了阿努比安·诺布(Anubian Noob)的回答;到目前为止,这是我的代码:
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)
如何将这三段信息存储到其各自的对象中?
*注意:文本文件中没有固定的行数,我们必须使用数组。
这是因为您正在读取文件的第一行,而不使用它。您从文件的第二行开始并将其分配给startReading
第一辆车。因此,文件中将没有足够的行(您首先计算了文件中的行数,因此计算了汽车的数量,但是读取的行太多了)
另外,循环次数不应增加i
3,因为已经将行数除以3。并且您将其i
用作car
数组的索引。
将代码更改为:
lineNumber.close();
// REMOVE String line = inputFile.readLine();
Car[] car = new Car[length/3];
// REMOVE while (line != null)
// REMOVE {
for (int i = 0; i < length/3; i ++) // DON'T DO i += 3 because that will make you go beyond the bounds of the car array
{
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);
}
// REMOVE }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句