0

私は個人的なプロジェクトに取り組んでいますが、理解できない問題があります。

public void setvars() {
    File file = new File("config.txt");

    try {
        Scanner sc = new Scanner(file);

        while(sc.hasNextLine()) {
            //int OESID = sc.nextInt(); this variable isnt used yet.
            String refresh = sc.next();
            sc.close();

            textFieldtest.setText(refresh);
        }
    }
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

コンソールで、エラーが発生したことがわかりませんwhile(sc.hasNextLine()) {。任意のポインタ/アドバイスをいただければ幸いです!

4

1 に答える 1

0

問題は、まだ使用している間にスキャナーを閉じようとしていることです。

コードを変更して、作業が完了したらスキャナーを閉じます。

    while(sc.hasNextLine()) {
        //int OESID = sc.nextInt(); this variable isnt used yet.
        String refresh = sc.next();

        textFieldtest.setText(refresh);
    }
    sc.close();

これは、リソースを扱っているときはいつでもおそらく一般的なパターンであるはずです。もう必要ないと確信した場合にのみ、リソースを閉じるようにしてください。

Java 7 を使用している場合は、リソースを自動的に閉じる新しい try-with-resource 機能を使用して、作業をさらに簡単にすることができます。

    try(Scanner sc = new Scanner("/Users/sean/IdeaProjects/TestHarness/src/TestHarness.java")) {
        while(sc.hasNextLine()) {
            // do your processing here
        }
    }  // resource will be closed when this block is finished
于 2013-02-16T16:08:19.233 に答える