首页  > 教育解读  > 怎么把二进制文件写进去

怎么把二进制文件写进去

2025-05-09 18:41:29
周老师
周老师已认证

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

以下是使用不同编程语言将二进制数据写入文件的示例方法,涵盖C、Python、Java和Go等常见语言:

一、C语言

使用`fopen`函数以二进制模式打开文件,通过`fwrite`函数写入数据。

```c

include

int main() {

FILE *file = fopen("example.bin", "wb"); // 以二进制写入模式打开文件

if (file == NULL) {

printf("无法打开文件n");

return 1;

}

const char *data = "Hello, World!";

size_t len = strlen(data);

fwrite(data, sizeof(char), len, file); // 写入数据

fclose(file); // 关闭文件

return 0;

}

```

二、Python

使用`struct.pack`将数据打包为二进制序列,再以二进制模式写入文件。

```python

import struct

示例数据

num = 123

name = "Chole"

打开文件进行二进制写入

with open('binary_file.bin', 'wb') as f:

将整数打包为二进制

packed_num = struct.pack('i', num)

将字符串编码为二进制

packed_name = struct.pack('64s', name.encode('utf-8'))

写入数据

f.write(packed_num + packed_name)

print("写入成功")

```

三、Java

使用`FileOutputStream`以二进制模式写入数据,注意避免字符编码问题。

```java

import java.io.FileOutputStream;

import java.io.IOException;

public class BinaryFileWrite {

public static void main(String[] args) {

byte[] data = {11, 12, 13, 14}; // 示例数据

String filename = "111111.bin";

try (FileOutputStream fos = new FileOutputStream(filename, true)) { // true表示追加模式

fos.write(data);

} catch (IOException e) {

e.printStackTrace();

}

}

}

```

四、Go语言

使用`os.Write`函数以二进制模式写入数据。

```go

package main

import (

"fmt"

"os"

)

func main() {

data:= []byte("Hello, Go!") // 示例数据

filename := "hello.go.bin"

err := os.WriteFile(filename, data, 0644) // 0644表示文件权限

if err != nil {

fmt.Println("写入失败:", err)

return

}

fmt.Println("写入成功")

}

```

注意事项

二进制文件与文本文件的区别

二进制文件直接存储原始字节,不同程序读取时可能需要特定解析逻辑。若直接用文本编辑器打开二进制文件,通常会显示乱码。

字符编码问题

- 读取二进制文件时,需按字节流处理,避免使用`String`类直接解码。

- 若需写入文本数据,建议使用`textwrap`或`base64`编码。

跨平台兼容性

- 不同操作系统对二进制文件的处理可能不同,建议在目标平台测试文件读写逻辑。

通过以上方法,可灵活实现二进制文件的读写操作。