誰かがこの問題を解決してくれませんか? バイナリ I/O クラスはあまり得意ではありません。
演習 13b_1.dat という名前のバイナリ データ ファイルが、DataOutputStream の writeInt(int) を使用して作成されたとします。ファイルには、指定されていない数の整数が含まれています。整数の和を求めるプログラムを書きなさい。
誰かがこの問題を解決してくれませんか? バイナリ I/O クラスはあまり得意ではありません。
演習 13b_1.dat という名前のバイナリ データ ファイルが、DataOutputStream の writeInt(int) を使用して作成されたとします。ファイルには、指定されていない数の整数が含まれています。整数の和を求めるプログラムを書きなさい。
これが簡単な解決策です。
FileInputStream fis = new FileInputStream("13b_1.dat");
DataInputStream dis = new DataInputStream(fis);
int count = 0;
try {
while (true) {
dis.readInt();
count++;
}
} catch (EOFException e) {}
System.out.println("There are " + count + " integers.");
1つの整数は4バイトであるため、効率を上げるために、バイトの束を読み取り、バイト数を4で割ることができます。