我不确定为什么我会收到此错误以及以下代码片段中的修复内容:
String srcFile=args[0];
Scanner fileIn = new Scanner(srcFile);
// if (fileIn.isFile() && fileIn.canRead())
CarDB carDatabase = new CarDB();
while(fileIn.hasNext())
{
String[] line = fileIn.nextLine().split(",");
double mpg = Double.parseDouble(line[0]);
int cylinders = Integer.parseInt(line[1]);
int power = Integer.parseInt(line[2]);
int year = Integer.parseInt(line[3]);
int region = Integer.parseInt(line[4]);
String makerName = line[5].trim();
String carName = line[6].trim();
carDatabase.addCar(makerName, carName, mpg, cylinders, power, year, region);// add car
carDatabase.addMaker(makerName);//add maker to list
}
和第36行是:double mpg = Double.parseDouble(line[0]);
错误是:
java CarDBMain cars.txt
java.lang.NumberFormatException: For input string: "cars.txt"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1250)
at java.lang.Double.parseDouble(Double.java:540)
at CarDBMain.main(CarDBMain.java:36)
答案 0 :(得分:3)
您正在使用此Scanner fileIn = new Scanner("cars.txt");
,因此您的第一行将是"cars.txt"
Scanner fileIn = new Scanner(new File(srcFile));//Or probably path of file
这里创建文件并将commandline argument
表示文件路径传递给File构造函数并将该文件传递给Scanner
。
您正在将文件名称String
传递给扫描程序。
构造
Scanner(File source)<---Takes File you want to read
Scanner(String source)<----Takes String you want to read
etc.