1

エラーの原因を見つけるのに苦労しています。私がしているのは、ファイルからテキストを読み取ることだけです

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 が読み取られました。どうもありがとうございました

4

3 に答える 3