“线程中的异常”;“主要”;我的标记器类中的java.util.NoSuchElementException
每当我运行程序时,它都会给我以下错误: 线程“main”java.util.NoSuchElementException中出现异常 位于java.util.StringTokenizer.nextToken(StringTokenizer.java:349) 在runCar.main(runCar.java:40) 作业上说我需要关闭文件,但我不确定如何关闭,而且我还没有在网上找到任何答案 这是我目前的代码:“线程中的异常”;“主要”;我的标记器类中的java.util.NoSuchElementException,java,Java,每当我运行程序时,它都会给我以下错误: 线程“main”java.util.NoSuchElementException中出现异常 位于java.util.StringTokenizer.nextToken(StringTokenizer.java:349) 在runCar.main(runCar.java:40) 作业上说我需要关闭文件,但我不确定如何关闭,而且我还没有在网上找到任何答案 这是我目前的代码: import java.io.IOException; import java.uti
import java.io.IOException;
import java.util.StringTokenizer;
import java.io.*;
public class runCar {
public static void main(String[] args) throws IOException{
StringTokenizer tokenizer;
String line, code, file="car.txt";
double dealerCost, price;
int idNumber, day, year, modelYear;
String makeModel, month, customer;
Date dateArrived, dateSold;
Car[] items = new Car[13];
Car[] placeholder = new Car[1];
FileReader fr = new FileReader(file);
BufferedReader inFile = new BufferedReader(fr);
int i = 0;
line= inFile.readLine();
tokenizer = new StringTokenizer(line," ");
code = tokenizer.nextToken();
while (code.charAt(0)!='X'){
System.out.println();
System.out.println(line);
if (code.equals("C") || code.equals("c")){
dealerCost=Double.parseDouble(tokenizer.nextToken());
idNumber=Integer.parseInt(tokenizer.nextToken());
month=(tokenizer.nextToken());
day=Integer.parseInt(tokenizer.nextToken());
year=Integer.parseInt(tokenizer.nextToken());
modelYear=Integer.parseInt(tokenizer.nextToken());
makeModel=(tokenizer.nextToken());
dateArrived=new Date(day, month, year);
items[i]=new Car(dealerCost, idNumber, modelYear, dateArrived, makeModel);
i++;
}//end "if c"
else if (code.equals("S1") || code.equals("s1"))
{
idNumber=Integer.parseInt(tokenizer.nextToken());
price=Double.parseDouble(tokenizer.nextToken());
month=(tokenizer.nextToken());
day=Integer.parseInt(tokenizer.nextToken());
year=Integer.parseInt(tokenizer.nextToken());
customer=(tokenizer.nextToken());
dateSold=new Date(day, month, year);
for (int j=0; j < items.length; j++)
{ if (idNumber==items[0].getidNumber())
{ placeholder[0]=items[j];
items[j]=new SoldCar (placeholder[0].getdealerCost(), placeholder[0].getidNumber(),
placeholder[0].getmodelYear(), placeholder[0].getdateArrived(),
placeholder[0].getmakeModel(), price, customer, dateSold);
}
}
i++;
}//end "if s1"
else if (code.equals("S2") || code.equals("s2"))
{
dealerCost=Double.parseDouble(tokenizer.nextToken());
idNumber=Integer.parseInt(tokenizer.nextToken());
month=(tokenizer.nextToken());
day=Integer.parseInt(tokenizer.nextToken());
year=Integer.parseInt(tokenizer.nextToken());
modelYear=Integer.parseInt(tokenizer.nextToken());
makeModel=(tokenizer.nextToken());
dateArrived=new Date(day, month, year);
price=Double.parseDouble(tokenizer.nextToken());
month=(tokenizer.nextToken());
day=Integer.parseInt(tokenizer.nextToken());
year=Integer.parseInt(tokenizer.nextToken());
customer=(tokenizer.nextToken());
dateSold=new Date(day, month, year);
items[i]=new SoldCar(dealerCost, idNumber, modelYear, dateArrived, makeModel,
price, customer, dateSold);
i++;
}//end "if s2"
else
System.out.println ("Error, wrong intital code. Use C, S1, or S2.");
line= inFile.readLine();
}//end "while not x"
for (int k=0; k < items.length; k++)
System.out.println(items[k] + "\n");
}//ends main
}//end class
import java.io.IOException;
导入java.util.StringTokenizer;
导入java.io.*;
公车{
公共静态void main(字符串[]args)引发IOException{
字符串标记器;
字符串行,代码,file=“car.txt”;
双经销商成本,价格;
int idNumber,day,year,modelYear;
字符串makeModel、month、customer;
到达日期、售出日期;
汽车[]项=新车[13];
Car[]占位符=新车[1];
FileReader fr=新的FileReader(文件);
BufferedReader infle=新的BufferedReader(fr);
int i=0;
line=infle.readLine();
标记器=新的StringTokenizer(行“”);
code=tokenizer.nextToken();
while(code.charAt(0)!='X'){
System.out.println();
系统输出打印项次(行);
如果(代码等于(“C”)|代码等于(“C”)){
dealerCost=Double.parseDouble(tokenizer.nextToken());
idNumber=Integer.parseInt(tokenizer.nextToken());
月份=(tokenizer.nextToken());
day=Integer.parseInt(tokenizer.nextToken());
year=Integer.parseInt(tokenizer.nextToken());
modelYear=Integer.parseInt(tokenizer.nextToken());
makeModel=(tokenizer.nextToken());
DateArrized=新日期(日、月、年);
项目[i]=新车(经销商成本、idNumber、车型年份、到达日期、makeModel);
i++;
}//结束“如果c”
else if(code.equals(“S1”)| code.equals(“S1”))
{
idNumber=Integer.parseInt(tokenizer.nextToken());
price=Double.parseDouble(tokenizer.nextToken());
月份=(tokenizer.nextToken());
day=Integer.parseInt(tokenizer.nextToken());
year=Integer.parseInt(tokenizer.nextToken());
customer=(tokenizer.nextToken());
DateSelled=新日期(日、月、年);
对于(int j=0;j
看来你还不够认真:
下面是另一个可能有帮助的链接:
看来你还不够认真:
下面是另一个可能有帮助的链接:
inFile.close();