Я не уверен, почему я получаю эту ошибку и что исправление к ней в следующем фрагменте кода:
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)
У вас есть этот Scanner fileIn = new Scanner("cars.txt");
поэтому ваша первая строка будет "cars.txt"
Scanner fileIn = new Scanner(new File(srcFile));//Or probably path of file
Здесь создайте файл и передайте commandline argument
, путь к файлу, в конструктор файлов и передайте этот файл Scanner
.
Вы передаете имя файла как String
to Scanner.
Конструкторы
Scanner(File source)<---Takes File you want to read
Scanner(String source)<----Takes String you want to read
etc.