2011-01-19 9 views
-1

これは本当に新人の質問です。Javaでファイルから行ごとに入力を読み取るにはどうすればよいですか?</p> <p>ファイルから行ごとにJavaで入力を読み取るにはどうしたらよいですか?

のように、各ラインの整数を持つファイルの入力を想定します

1 
2 
3 
4 
5 

ここで私はで動作するようにしようとしていたコードの抜粋です:

おそらく
public static void main(File fromFile) { 

    BufferedReader reader = new BufferedReader(new FileReader(fromFile)); 

    int x, y; 

    //initialize 
    x = Integer.parseInt(reader.readLine().trim()); 
    y = Integer.parseInt(reader.readLine().trim()); 

} 

、これはで読んでいました最初の2行をxとyに整数として格納します。したがって、この例では、x = 1、y = 2になります。

これで問題が見つかりました。その理由はわかりません。

+0

あなたが任意のスタックstraceのを投稿することができますか? – lweller

+0

現在のコードの問題点について詳しく説明してください。間違いはありますか?おそらくこれは5の代わりに2行しか読んでいないということでしょうか?それはコンパイルされないか、実行されませんか? – Nanne

+0

'public static void main(File fromFile)'はそれです!!!! –

答えて

2
public static void main(String[] args) { 
     FileInputStream fstream; 
     DataInputStream in = null; 
     try { 
      // Open the file that is the first 
      // command line parameter 
      fstream = new FileInputStream("textfile.txt"); 
      // Get the object of DataInputStream 
      in = new DataInputStream(fstream); 
      BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
      String strLine; 
      int x = Integer.parseInt(br.readLine()); 
      int y = Integer.parseInt(br.readLine()); 

      //Close the input stream 

     } catch (Exception e) {//Catch exception if any 
      System.err.println("Error: " + e.getMessage()); 
     } finally { 
      try { 
       in.close(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 

    } 
2

main method()をご確認ください。それはそのように読めるこれら

public static void main(String... args) { 
} 

または

public static void main(String[] args) { 
} 

のようにする必要があります:

BufferedReader reader = new BufferedReader(new FileReader(fromFile)); 

String line; 
while((line = reader.readLine()) != null){ 
     int i = Integer.parseInt(line); 
} 
+0

入力ファイルを渡すことができない場合、BufferedReaderをどのように初期化するのですか?のように、fromFileはどこから来ますか? – AnujSuper9

+0

あなたは正しいことをしたので、私はそれを書いていませんでした。とにかく、私はちょうどあなたのコードをコピーします(init bufferedreader) –

+0

@Anujは私のポストでチェックします –

0

我々は通常、whileループを使用し、readLine方法は年末かどうかを伝えますファイルに達したかどうか:

List<String> lines = new ArrayList<String>(); 
while ((String line = reader.readLine()) != null) 
    lines.add(line); 

ここでは、ファイルからすべての行を別々の文字列として保持するコレクション(リスト)があります。


読みながらちょうど整数の集合を定義し、解析し、整数などのコンテンツを読むために:

List<Integer> lines = new ArrayList<Integer>(); 
while ((String line = reader.readLine()) != null) { 
    try { 
    lines.add(Integer.parseInt(line.trim())); 
    } catch (NumberFormatException eaten) { 
    // this happens if the content is not parseable (empty line, text, ..) 
    // we simply ignore those lines 
    } 
} 
関連する問題