0

.txt ファイルを読み込もうとしていますが、デバッガーを使用すると nextline で動かなくなりますか? 私がやっている論理エラーはありますか?複数のオブジェクトを介してすべて配列に格納されています。

public static File readFileInfo(Scanner kb)throws FileNotFoundException


{
     System.out.println("Enter your file name");
      String name = "";
      kb.nextLine();
      name = kb.nextLine();
      File file = new File(name);
      return file;
   }

私が渡したスキャナーは次のとおりです。

Scanner fin = null, kb = new Scanner(System.in);
  File inf = null;

  inf = FileUtil.readFileInfo(kb);
  fin = new Scanner(inf);
4

2 に答える 2

2

ここでは、2 つの異なる「ファイル」から読み込んでいます。

を呼び出すときは、次の行name = kb.nextLine();のパラメーター (で構築されたスキャナーSystem.in) を求めています。通常、ユーザーから別の入力行 (ファイル名) を受け取るまで、実際にはブロック (「ハング」) します。コマンド ラインから実行する場合は、そのウィンドウにテキストを入力します。IDE で実行している場合は、[コンソール] タブに切り替えてそこに入力します。

上で quazzieclodo が指摘したように、readLine を呼び出す必要があるのはおそらく 1 回だけです。

その後、readFileInfo が返すファイルに基づいて 2 番目のスキャナを開くことができ、実際に期待どおりにテキスト ファイルから読み取っています。

于 2013-11-11T19:41:54.840 に答える
0

Scanner を使用してテキスト ファイルを読み取ることを意図していると仮定します。

 File file = new File("data.txt");

    try {
        Scanner scanner = new Scanner(file);
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            System.out.println(line);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
于 2013-11-11T19:29:26.230 に答える