java - 如何在 Java 中读取一个大的二进制文件

标签 java file memory binary

我想用 Java 读取一个二进制文件,其中包含 m 个数据集。我知道每个数据集都由 3 个元素组成:一个长数、一个双数和该序列中的一个长数。数据集一个接一个地重复,直到文件末尾。假设数据集的数量 m 是已知的,我如何在不将所有数据集传递到主内存的情况下用 Java 读取文件,以便也能够读取不“适合”在主内存中的大文件?

最佳答案

如果你想要顺序访问:

import java.io.FileInputStream;
import java.io.DataInputStream;

DataInputStream dis = new DataInputStream(new FileInputStream("input.bin"))
for(int i = 0; i < m; i++){
    long l1 = dis.readLong();
    double d1 = dis.readDouble();
    long l2 = dis.readLong();
    /* do what you need */
}
dis.close();

关于java - 如何在 Java 中读取一个大的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16118468/

相关文章:

Java:Gelf-Logstash -> "ssl:hostname"时异常

c - 从输入文件中读取字符串并将它们存储到动态数组中

iphone - 在 XCode 中使用仪器进行内存泄漏检查?

java - 在java中使类可序列化有什么缺点

java - 在 selenium 中使用 String.ValueOf() 将 Float 转换为 String 显示异常 - java.lang.ClassCastException : java. lang.Float 无法转换为 [C

java - 与 DriverManager 中的 GetConnection() 方法和 Scanner、System.in 中的 next() 方法相关的线程死锁

java - 错误:java.lang.RuntimeException:java.lang.ClassNotFoundException:类WordCountExample $ Map找不到

java - 从绝对路径获取名称,从最后一个斜杠获取子字符串,java android

c - 从文本文件中读取目录和文件名

c - 获得空闲时指向内存块的指针()不管指针是什么?