
赵老师为您分享以下优质知识
将文件保存为二进制格式可以通过多种方式实现,具体方法取决于所使用的编程语言和场景。以下是常见的实现方式及示例代码:
一、使用 `FileStream`(适用于 .NET 环境)
在 .NET 中,`FileStream` 提供了以二进制模式读写文件的功能。
示例:将文本文件保存为二进制
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello, Binary!");
using (FileStream file = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
{
file.Write(data, 0, data.Length);
}
Console.WriteLine("文件已保存为二进制格式");
}
}
```
二、使用 `BinaryFormatter`(适用于 .NET 环境)
`BinaryFormatter` 可以序列化对象并保存为二进制文件,适用于复杂数据结构的存储。
示例:序列化对象到二进制文件
```csharp
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Customer
{
public string Name { get; set; }
public double Amount { get; set; }
}
class Program
{
static void Main()
{
Customer customer = new Customer { Name = "张三", Amount = 123.45 };
string filePath = "customer.dat";
using (FileStream file = new FileStream(filePath, FileMode.Create))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(file, customer);
}
Console.WriteLine("对象已序列化到二进制文件");
}
}
```
三、使用 `File.WriteAllBytes`(简化操作)
对于简单的二进制数据,可以使用 `File.WriteAllBytes` 方法直接写入文件。
示例:写入基本数据类型到二进制文件
```csharp
using System;
class Program
{
static void Main()
{
double[] data = { 65.0, 3.14159, 9.999999, 4.7E-8 };
string filePath = "data.bin";
try
{
File.WriteAllBytes(filePath, data);
Console.WriteLine("数据已写入二进制文件");
}
catch (Exception ex)
{
Console.WriteLine($"错误: {ex.Message}");
}
}
}
```
四、使用 C++ 的 `fstream` 库(适用于 C++ 环境)
在 C++ 中,通过 `ofstream` 以二进制模式写入文件。
示例:写入结构体到二进制文件
```cpp
include
include
include
struct Customer {
std::string name;
double amount;
};
int main() {
Customer customer = {"李四", 250.50};
std::ofstream outFile("customer.bin", std::ios::binary);
if (!outFile) {
std::cerr