下面是“利用Java读取二进制文件实例详解”的完整攻略。
一、准备工作
- 创建Java项目,并添加相关的依赖:
xml
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
其中,commons-io依赖是用来实现文件读写的。
- 创建二进制文件,作为示例,我们这里创建一个包含多个int类型数据的二进制文件
data.bin
。可以使用以下代码创建:
java
int[] numbers = {1, 2, 3, 4, 5};
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) {
for (int num : numbers) {
dos.writeInt(num);
}
} catch (IOException e) {
e.printStackTrace();
}
二、读取二进制文件
- 读取二进制文件的过程需要使用到DataInputStream类,可以通过以下代码创建:
java
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
// ...
} catch (IOException e) {
e.printStackTrace();
}
- 读取int类型数据的方法是
readInt()
,可以将该方法返回的结果赋给一个int变量来获取读取到的数据,示例代码如下:
java
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
System.out.println(dis.readInt());
System.out.println(dis.readInt());
System.out.println(dis.readInt());
System.out.println(dis.readInt());
System.out.println(dis.readInt());
} catch (IOException e) {
e.printStackTrace();
}
该代码将依次输出1、2、3、4、5,即读取到的数据。
- 上面的示例代码中,每次都需要手动调用
readInt()
方法来读取数据,如果有很多数据需要读取,就比较繁琐。可以通过循环来简化代码,示例代码如下:
java
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
while (dis.available() > 0) {
System.out.println(dis.readInt());
}
} catch (IOException e) {
e.printStackTrace();
}
该代码利用了available()
方法来判断是否还有数据需要读取,如果还有,就继续读取并输出。
三、示例代码
完整的示例代码如下:
import java.io.*;
public class BinaryFileReader {
public static void main(String[] args) {
// 创建二进制文件 data.bin
int[] numbers = {1, 2, 3, 4, 5};
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) {
for (int num : numbers) {
dos.writeInt(num);
}
} catch (IOException e) {
e.printStackTrace();
}
// 读取二进制文件 data.bin
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
while (dis.available() > 0) {
System.out.println(dis.readInt());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
另外,如果想要读取其他类型的数据,可以使用以下方法:
- boolean类型:
readBoolean()
- byte类型:
readByte()
- short类型:
readShort()
- long类型:
readLong()
- float类型:
readFloat()
- double类型:
readDouble()
- char类型:
readChar()
以上就是“利用Java读取二进制文件实例详解”的完整攻略,希望能够对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Java读取二进制文件实例详解 - Python技术站