2016-09-13 16 views
0

私はJavaが新しく、.txtファイルをスキャンして個々の単語を取得しようとしました。テキストファイルのスキャナーがArrayListに要素を追加できません

ArrayListに要素が追加されていないため、どこが間違っていましたか?

public class ScanInputFile { 

public static ArrayList<String> list = new ArrayList<String>(); 

public static void importArrayList(String path) throws FileNotFoundException { 
    File textFile = new File(path); 
    Scanner s = new Scanner(textFile); 
    while (s.hasNext()){ 
     list.add(s.next()); 
    } 
    s.close(); 
} 

public static void main(String[] args) throws FileNotFoundException { 
    importArrayList("C:\\MyFirstList.txt"); 
    System.out.println(list.get(0)); 
} 

}

これはtxtファイルは、行ごとに2つのワード10語を含んでいてもIndexOutOfBounds例外をスロー。

FileNotFoundExceptionsに問題があったため、path.exists()とpath.canRead()がtrueに戻っていることを確認しました。

ありがとうございます!

+2

'hasNext()'が少なくとも真であるかどうかデバッグしましたか? – Smutje

+0

完全なエラーを表示 –

+0

はい、私はしました。以下のようにtxtファイルを置き換えるまで、それは決してtrueを返しませんでした。 – Sp33dyGonzal3s

答えて

0

あなたが投稿したコードで試してみましたが、私にとってはうまくいった - あなたのファイルはどうなっていますか?私は試してみました:

ブーイング fooの カンガルー印刷 動物園

コンソール: "BOO"。

+0

迅速な対応もありがとうございます。私はあなたのサンプルリストを含む新しい文書を作成し、突然それが働いた...私の.txtファイルで何かがあったに違いない...もう一度ありがとう! – Sp33dyGonzal3s

0

あなたのコードはうまく実行されています。 'リスト'にはまた、期待通りに値が設定されています。私が作った変更はそのファイルパスだけです。あなたはC:/の直下に置いてあり、それをフォルダの下に置きます。しかし、それは問題ではありません。最後のS.O.Pステートメントをループの下に置くと、すべてが出力されます。しかし、私はそのようになっていませんIndexOutOfBoundExpection

+0

迅速な対応をありがとうございます。私はディレクトリツリーがかなり深いので、その目的のためだけにファイルを置いています。 私はそれを修正したことを知りませんでしたが、私の古いリストをクリアし、新しい.txtを作成します。問題を解決しました。 – Sp33dyGonzal3s

関連する問題