文章目录
- 定义Person结构体:
internal struct Person
{
public string Name;
public int Age;
public bool IsMember;
public Person(string name, int age, bool isMember)
{
Name = name;
Age = age;
IsMember = isMember;
}
}
Person
结构体包含三个字段:Name
(姓名,字符串类型)、Age
(年龄,整型)和IsMember
(会员资格,布尔型)。构造函数允许我们创建具有初始值的Person
实例。
- 编写Main方法:
static void Main(string[] args)
{
Person[] people = new Person[]
{
new Person("Alice", 30, true),
new Person("Bob", 25, false),
new Person("Charlie", 35, true)
};
WritePeopleToFile(people);
}
Main
方法是程序的入口点。在这里,我们创建了一个Person
数组并初始化了一些示例数据。然后,我们调用WritePeopleToFile
方法将这些数据写入文件。
- 实现WritePeopleToFile方法:
public static void WritePeopleToFile(Person[] people)
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
{
BinaryWriter binaryWriter = new BinaryWriter(fileStream, Encoding.UTF8);
foreach (Person person in people)
{
binaryWriter.Write(person.Name);
binaryWriter.Write(person.Age);
binaryWriter.Write(person.IsMember);
}
}
Console.WriteLine("信息已写入文件。");
}
WritePeopleToFile
方法接收一个Person
数组作为参数,并使用FileStream
以创建模式打开一个二进制文件。我们使用BinaryWriter
来写入姓名、年龄和会员资格信息。BinaryWriter
是一个方便的类,用于将数据直接写入二进制流中。循环遍历每个人,将他们的信息写入文件。
- 文件路径和编码:
private static string filePath = "people.bin"; // 二进制文件路径
我们定义了一个私有静态变量filePath
来存储二进制文件的路径。这里,我们将其命名为people.bin
。BinaryWriter
使用UTF-8
编码来写入字符串数据,这是一种广泛支持的字符编码。
全部代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace P3_4
{
// 定义一个结构体来存储人的姓名、年龄和会员资格
internal struct Person
{
public string Name;
public int Age;
public bool IsMember;
public Person(string name, int age, bool isMember)
{
Name = name;
Age = age;
IsMember = isMember;
}
}
internal class Program
{
private static string filePath = "people.bin"; // 二进制文件路径
// 程序的主入口点
static void Main(string[] args)
{
// 创建一个Person数组来存储几个人的信息
Person[] people = new Person[]
{
new Person("Alice", 30, true),
new Person("Bob", 25, false),
new Person("Charlie", 35, true)
};
// 将这些人的信息写入二进制文件
WritePeopleToFile(people);
}
// 将Person数组写入二进制文件
public static void WritePeopleToFile(Person[] people)
{
// 使用FileStream以二进制写入模式打开文件
using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
{
BinaryWriter binaryWriter = new BinaryWriter(fileStream, Encoding.UTF8); // 创建BinaryWriter
// 遍历Person数组,将每个人的信息写入文件
foreach (Person person in people)
{
binaryWriter.Write(person.Name); // 写入姓名
binaryWriter.Write(person.Age); // 写入年龄
binaryWriter.Write(person.IsMember); // 写入会员资格
}
}
Console.WriteLine("信息已写入文件。");
Console.ReadKey();
}
}
}