Javaでフォーマットされた入力を読み取るにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1414444

  •  06-07-2019
  •  | 
  •  

質問

入力ファイルに次が含まれているとします:

3 4 5 6    7        8
9


10

whileループを実行して整数を読み取りたいので、ループの各反復後にそれぞれ3,4,5,6,7,8および10を取得します。

これは、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

Java でこのファイルから整数を読み取るにはどうすればよいですか

役に立ちましたか?

解決

スキャナー クラスとその nextInt メソッド:

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

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

出力:

3
4
5
6

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

コンストラクターとしての Scanner クラスは、 InputStream を文字ストリームのソースとして使用するため、 FileInputStream はテキストのソースを開きます。

上記の例の Scanner のインスタンス化を次のように置き換えます。

Scanner s = new Scanner(new FileInputStream(new File(filePath)));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top