首页  > 教育解读  > 如何读写一个二进制文件

如何读写一个二进制文件

2025-05-03 10:19:24
肖老师
肖老师已认证

肖老师为您分享以下优质知识

读写二进制文件是计算机编程中的基础操作,以下是具体方法及示例:

一、Python中的二进制文件读写

打开文件

- 读取模式:`'rb'`(二进制读取)

- 写入模式:`'wb'`(二进制写入)

- 追加模式:`'ab'`(二进制追加)

```python

读取文件

with open('example.bin', 'rb') as file:

content = file.read()

print(content)

写入文件

with open('example.bin', 'wb') as file:

file.write(b'x00x01x02x03')

```

按块读取

- 避免一次性读取大文件导致内存不足,可按固定大小分块读取

```python

chunk_size = 1024

with open('example.bin', 'rb') as file:

while True:

data = file.read(chunk_size)

if not data:

break

print(data)

```

使用上下文管理器

- `with`语句自动管理文件关闭,避免资源泄漏

```python

with open('example.bin', 'rb') as file:

content = file.read()

处理内容

```

二、C语言中的二进制文件读写

基础操作

- 使用`fopen`指定模式(如`"wb"`、`"rb"`)

- 使用`fwrite`写入数据

- 使用`fread`读取数据

```c

写入文件

FILE *file = fopen("example.bin", "wb");

if (file) {

fwrite(&number1, sizeof(Num), 1, file);

fclose(file);

}

// 读取文件

file = fopen("example.bin", "rb");

if (file) {

fread(&number1, sizeof(Num), 1, file);

fclose(file);

}

```

结构体读写

- 可以读写固定格式的二进制结构

```c

struct MyStruct {

float data;

};

// 写入结构体

MyStruct s = {{1.1f, 2.2f, 3.3f}};

fwrite(&s, sizeof(MyStruct), 1, file);

// 读取结构体

MyStruct r;

fread(&r, sizeof(MyStruct), 1, file);

```

三、注意事项

模式选择

- 文本文件使用`'r'`/`'w'`模式,二进制文件必须使用`'b'`前缀(如`'rb'`)

- 追加操作需使用`'a'`模式

数据对齐

- 读写固定结构体时需注意内存对齐,避免数据错位

异常处理

- 操作系统层面需检查文件是否成功打开

- 编程语言层面建议使用`try-catch`(如Python)或检查返回值(如C语言)

四、扩展应用

文件拷贝:

通过循环读取源文件并写入目标文件实现

网络传输:二进制文件适合传输图像、音频等非文本数据

通过以上方法,可灵活处理二进制文件的读写需求。