こんにちは、このコードをテキストファイルから読み込もうとしています。テキストファイルは、次の行の文字列がいずれかのストップで始まるかどうかを調べることでピッチを定義することになっています、再生、またはデュレーションを設定し、それをシンセに渡して再生できるようにします。java.util.InputMismatchExceptionファイルからロードするとき
誰もがエラーを引き起こしていて動作していない理由を知っていますか?次のように
コードとサンプルテキストファイルは、以下のとおりです。テキストファイルがどのように見えるかについては
public class MyTuneRunnable implements Runnable {
//method start
public void run(){
Thread thread = Thread.currentThread();
thread.getName();
try {
Synthesizer synth = MidiSystem.getSynthesizer();
synth.open();
MidiChannel[] channels = synth.getChannels();
File file = new File(Loader.instance().getConfigDir().getParentFile().getAbsolutePath()+"/"+"LoadTunes"+"/"+Config.tuneName+".txt");
try {
Scanner intLoader = new Scanner(file);
Scanner stringLoader = new Scanner(file);
while (intLoader.hasNextLine()&stringLoader.hasNextLine()) {
int i = intLoader.nextInt();
String s = stringLoader.next();
if (s.startsWith("play")){
channels[channel].noteOn(i, volume);
}
if (s.startsWith("stop")){
channels[channel].noteOff(i, volume);
}
if (s.startsWith("duration")){
Thread.sleep(i);
}
}
intLoader.close();
stringLoader.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
synth.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
...これは一例です:
0 This is a comment
0
play 60 This is a C note and it is set to play because of 'play <note number>'
0
duration 200 This is saying the currently playing notes will make sound
0
stop 60 This stops playing the C note because of the 'stop <note number>'
例外が発生し、それについて質問している場合は、スタックトレース全体を質問に投稿したいと思うでしょう。重要な情報が含まれています。また、それをスローする行も示します。 –
同じファイルで2つのスキャナーを使用しているのはなぜですか?これは、ポインタを前進させても前進しないため、あなたを引き上げる可能性があります。 –
...........こんにちは? –