Javaでフォーマットされた入力を読み取るにはどうすればよいですか?
質問
入力ファイルに次が含まれているとします:
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 でこのファイルから整数を読み取るにはどうすればよいですか
解決
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)));
所属していません StackOverflow