エラーの原因を見つけるのに苦労しています。私がしているのは、ファイルからテキストを読み取ることだけです
public static void main(String[] args) throws Exception {
int T;
Scanner sc = new Scanner(new FileInputStream("problem3.txt"));
T = sc.nextInt(); // first int in file, so T should be 2
}
エラー メッセージには InputMismatchException が表示されます。
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 round1.Problem3.main(Problem3.java:11)
problem3.txt の内容は次のとおりです (3 行、スペースなし)。
2
36
127
InputMismatchException に対処する他の質問を検索しましたが、ほとんどに「間違った形式」のエラーがあります (int を文字列として読み取ろうとしている、またはその逆)。しかし、私の場合、ファイルの内容はすべて整数であるため、問題はありません。
また、エラーは「改行文字 (\n)」にある可能性があると考えました。だから試した
T = sc.nextInt(); // error
sc.nextLine();
そしてその逆
sc.nextLine();
T = sc.nextInt(); // error
どちらも同じ行で同じエラーを出します。
単純な問題のように思えますが、私はそれを見つけることができません。前もって感謝します。
問題が解決しました: エンコーディングを Cp1252 に変更したところ、2 が読み取られました。どうもありがとうございました