Java 二进制I/O类(对二进制数据文件中的所有整数求和)

Java 二进制I/O类(对二进制数据文件中的所有整数求和),java,binary,dataoutputstream,datainputstream,Java,Binary,Dataoutputstream,Datainputstream,有人能帮我解决这个问题吗?我对二进制I/O类不是很在行 假设在DataOutputStream中使用writeInt(int)创建了一个名为exercise13b_1.dat的二进制数据文件。该文件包含未指定数量的整数。写一个程序来求整数之和 这里有一个简单的解决方案 FileInputStream fis = new FileInputStream("13b_1.dat"); DataInputStream dis = new DataInputStream(fis); int count =

有人能帮我解决这个问题吗?我对二进制I/O类不是很在行

假设在DataOutputStream中使用writeInt(int)创建了一个名为exercise13b_1.dat的二进制数据文件。该文件包含未指定数量的整数。写一个程序来求整数之和


这里有一个简单的解决方案

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.");

为了提高效率,您可以读取一组字节并将字节数除以四,因为一个整数等于四个字节。

编程主要是玩二进制,您拥有世界上所有的时间。所以,试着做点什么,问问你不清楚的细节。提示:你认为什么方法可以用来读取用一个叫做“writeInt”的方法编写的东西?当然,对控制流使用异常不是很好的风格。如果能找出文件中有多少整数就好了。@Dmitri:如果writeInt为每个参数写入恒定的字节数,您可以将文件长度除以该数得到文件中的整数数。@Thomas:我在用温和的讽刺来引导问题的作者找到解决方案:)