这是问题代码:如果我在项目级导入文本文件,它会给我这个:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at edu.ilstu.ConcertDriver.main(ConcertDriver.java:59)
如果我只将文件导入较低的目录,例如源文件夹,则会抛出FileNotFoundException。我做错了什么?
我的文件包含以下元素:
栗色5
15个
40个
一个方向
10个
50个
珍珠果酱
20个
30
请注意,在30之后,它会返回到下一行
String inputFileName = "concerts.txt";
Scanner inputStream = null;
try
{
inputStream = new Scanner(new File(inputFileName));
}
catch(FileNotFoundException e)
{
System.out.println("Error opening the file " + inputFileName);
System.exit(0);
}
String bandName1=null;
int showCapacity1=0;
int ticketPrice1=0;
String bandName2=null;
int showCapacity2=0;
int ticketPrice2=0;
String bandName3=null;
int showCapacity3=0;
int ticketPrice3=0;
bandName1 = inputStream.nextLine();
showCapacity1 = inputStream.nextInt();
ticketPrice1 = inputStream.nextInt();
bandName2 = inputStream.nextLine();
showCapacity2 = inputStream.nextInt();
ticketPrice2 = inputStream.nextInt();
bandName3 = inputStream.nextLine();
showCapacity3 = inputStream.nextInt();
ticketPrice3 = inputStream.nextInt();
答案 0 :(得分:2)
输入不匹配异常意味着您尝试获取错误的数据类型。我猜你的输入文件是罪魁祸首,但你应该在这里添加它以确保。
答案 1 :(得分:1)
当您将文件放在项目目录中时,表示您的代码中有错误(但文件位于正确的位置 - 如果您没有得到FileNotFOundException
)。移动文件时,表示文件不在正确的位置。
对于每个Integer行,尝试对每一行进行解析
showCapacity1 = Integer.parseInt(inputStream.nextLine().trim());