专业的编程技术博客社区

网站首页 > 博客文章 正文

C# 将一个List保存到二进制文件中,再读取还原为List

baijin 2024-08-17 10:56:16 博客文章 9 ℃ 0 评论

要将一个List保存到二进制文件中,并将其读取为List,您可以使用C#中的BinaryFormatter类和FileStream类。

以下是一个示例代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

class Program
{
    static void Main()
    {
        string filePath = "list_file.bin"; // 二进制文件路径

        // 创建一个List并添加一些元素
        List<string> myList = new List<string>();
        myList.Add("Apple");
        myList.Add("Banana");
        myList.Add("Orange");

        // 将List保存到二进制文件
        SaveListToFile(filePath, myList);

        // 从二进制文件中读取List
        List<string> loadedList = LoadListFromFile(filePath);

        // 打印读取的List
        Console.WriteLine("读取的List内容:");
        foreach (string item in loadedList)
        {
            Console.WriteLine(item);
        }
    }

    static void SaveListToFile(string filePath, List<string> list)
    {
        // 创建一个FileStream用于写入二进制文件
        using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
        {
            // 创建一个BinaryFormatter实例
            BinaryFormatter formatter = new BinaryFormatter();

            // 使用BinaryFormatter将List序列化为二进制数据,并写入FileStream
            formatter.Serialize(fileStream, list);
        }
    }

    static List<string> LoadListFromFile(string filePath)
    {
        // 创建一个FileStream用于读取二进制文件
        using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
        {
            // 创建一个BinaryFormatter实例
            BinaryFormatter formatter = new BinaryFormatter();

            // 使用BinaryFormatter从FileStream中反序列化二进制数据,并将其转换为List
            List<string> list = (List<string>)formatter.Deserialize(fileStream);

            return list;
        }
    }
}

在这个示例中,我们首先创建一个List并添加一些元素。

然后,我们使用SaveListToFile方法将List保存到二进制文件中。

SaveListToFile方法中,我们创建一个FileStream用于写入二进制文件,并创建一个BinaryFormatter实例。我们使用BinaryFormatterSerialize方法将List序列化为二进制数据,并将其写入FileStream

接下来,我们使用LoadListFromFile方法从二进制文件中读取List。

LoadListFromFile方法中,我们创建一个FileStream用于读取二进制文件,并使用BinaryFormatterDeserialize方法将二进制数据反序列化为List。

最后,我们打印读取的List的内容。

请确保将示例代码中的list_file.bin替换为您要保存和读取的二进制文件的路径。

请注意,这只是一个简单的示例,适用于保存和读取字符串类型的List。

如果您的需求是不同的,例如保存和读取其他类型的List,您需要相应地调整序列化和反序列化的方法和数据类型。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表