2009-09-12 7 views
5

私の入力ファイルが含まれているとします。Javaで書式付き入力を読み取るにはどうすればよいですか?

3 4 5 6 7  8 
9 


10 

私は、各繰り返しの後に、それぞれ3,4,5,6,7,8及び10を取得するように、私は、whileループを実行し、整数を読みたいですループ。

これは、C/C++ではなく、Javaで行うことは本当に簡単です...

私はこのコードを試してみました:

try { 
      DataInputStream out2 = new DataInputStream(new BufferedInputStream(new FileInputStream(file))); 

      int i=out2.read(); 
      while(i!=-1){ 
       System.out.println(i); 
       i=out2.readInt(); 
      } 

    } catch (IOException ex) { 

    } 

とどのような私が手には、次のとおりです。

51 
540287029 
540418080 
538982176 
151599117 
171511050 
218762506 
825232650 

どのようにすればの整数を読むことができますか?

+1

Scanner s = new Scanner(new FileInputStream(new File(filePath))); 
:DataInputStreamのバイナリではなくテキストを読み取るためのものです。 –

+0

それで、JavaのソリューションはC++よりも簡単になったのでしょうか?私にとっては –

+0

、Cでの入力を読むのがさらに簡単です。特に、ファイルにすべての種類のデータ(数字、文字列、浮動小数点数など)が含まれています。 – Lazer

答えて

15

一つはScannerクラスとそのnextIntメソッドを使用することができます。

Scanner s = new Scanner("3 4  5 6"); 

while (s.hasNext()) { 
    System.out.println(s.nextInt()); 
} 

出力:

3 
4 
5 
6 

は、基本的にはデフォルトで、Scannerオブジェクトは任意の空白を無視して、次のトークンを取得します。

Scanner class as a constructorは、文字ストリームのソースとしてInputStreamを取ります。したがって、テキストソースを開くFileInputStreamを使用できます。

以下で、上記の例でScannerインスタンスを交換:FYI

+0

ありがとう!できます! – Lazer

関連する問題