2017-01-17 27 views
0

ので、私はこのような文字列を含む入力の束と、テキストファイルに読みたい:テキストファイルから入力を読み込み、それらの入力をJavaのArrayListに入れるには?

abc456 
mnjk452 
aaliee23345 
poitt78 

私は配列リストにこれらの入力のそれぞれを入れて、私のいずれかの方法でその配列リストを渡したいです。私はどうしたらいいのですか?現在、私のコードでは、私はarraylistにあるものを単純に印刷できるかどうかを確認しようとしています。ここで私は私のメインに持っているものです。

public static void main(String[] args) { 
     if(args.length < 1) { 
      System.out.println("Give me a file!"); 
     } 

     String fname = args[0]; 

     ArrayList<String> coordinates = new ArrayList<String>(); 

     Scanner grid = new Scanner(fname); 
     while(grid.hasNext()) { 
      coordinates.add(grid.nextLine()); 
     } 

     for(String coordinate : coordinates) { 
      System.out.println(coordinate); 
     } 

} 
+2

あなたのコードは今何をしていますか?どのように期待と異なるのでしょうか? –

+0

私はテキストファイルでimを読んでいるとは思わない。私はプログラムを実行すると、それは私に "私にファイルを与える!"プロンプト、私が設定した – user7428413

+0

どのようにファイルを読むのですか? –

答えて

1

これはどう:スキャナで実現することができるのと同じ

Path path = Paths.get(args[0]); 
List<String> coordinates = Files.readAllLines(path); 
System.out.print(coordinates); // [abc456, mnjk452, aaliee23345, poitt78] 

Path path = Paths.get(args[0]); 
List<String> result = new ArrayList<>(); 
Scanner sc = new Scanner(path); 
while (sc.hasNextLine()) { 
    String line = sc.nextLine(); 
    result.add(line); 
} 
System.out.print(result); // [abc456, mnjk452, aaliee23345, poitt78] 

は、ときに引数を渡すことを忘れないでくださいIDEまたはコマンドラインでアプリケーションを実行します。

0

ファイルから読み込む場合、Scannerオブジェクトに与えるFileオブジェクトを作成する必要があります。また、行ごとにグラブしているので、grid.hasNextLine()に基づいてwhileループを制御する必要があります。ターミナルからプログラムを実行するときに最後に、あなたは、引数にパラメータとしてでそのファイルを渡します「ファイル名」

javaの「メインであなたのクラスの名前を」やるべきこと[0]

try 
{ 
    Scanner grid = new Scanner(new File(fname)); 
    while(grid.hasNextLine()) 
    { 
     coordinates.add(grid.nextLine()); 
    } 
}catch(FileNotFoundException e) 
{ 
    System.err.println("File " + fname + " does not exist/could not be found"); 
    e.printStackTrace(); 
} 
関連する問題