所以我需要这个从文件中读取数据,然后在接收到两个整数后在finch上播放音调。在文件中有一些整数,其中有75K的字母,我想跳过它,并且垃圾中的另一个整数。我不认为我完全理解异常,但有人可以告诉我吗?下面是代码(我把一个println,所以我可以看到发生了什么):阅读数据和例外
public static void main(String[] args) {
Finch finch = new Finch();
int dur, freq;
Scanner inputStream = null;
String trash;
try {
inputStream = new Scanner(new File("F:\\Java\\NetbeansFinchFolder\\SourceFiles\\Code\\Lab5Data.txt"));
} catch (Exception e) {
System.out.println("invalid input");
}
while (inputStream.hasNext()) {
if (inputStream.hasNextInt()) {
dur = inputStream.nextInt();
freq = inputStream.nextInt();
System.out.println(dur);
System.out.println(freq);
if (dur > -1 && freq > -1) {
finch.setLED(Color.GREEN);
finch.playTone(freq, dur);
}
} else if(!(inputStream.hasNextInt()))
{
finch.setLED(Color.RED, 1000);
trash = inputStream.next();
trash = inputStream.next();
}
}
}
}
输出:
Connecting to Finch...this may take a few seconds...
262
500
262
500
262
500
294
250
330
500
330
250
294
250
330
250
349
250
392
500
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Code.LabAssign5.main(LabAssign5.java:34)
Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)
只是一个小纸条:确认你看这数据,在添加的println变量名:'的System.out.println( “杜尔=” + DUR);' – moffeltje
什么你想让我们展示吗? – moffeltje