Читать словарь из файла данных

Я написал словарь в файл данных, мой словарь выглядит так:

Dictionary<string, Dictionary<string,string>>

Теперь моя проблема заключается в чтении из файла словаря, я пытался использовать BinaryReader и StreamReader, но мой словарь по-прежнему нулевой.

Мой код записи:

static void WriteToFile(Dictionary<string, Dictionary<string, string>> dic)

            FileStream fs = new FileStream(FILE_NAME, FileMode.OpenOrCreate);
            StreamWriter w = new StreamWriter(fs);
          BinaryFormatter bw = new BinaryFormatter();
        bw.Serialize(fs,dic);
            w.Write(dic);

Мой прочитанный код:

FileStream fs = newFileStream(FILE_NAME , FileMode.OpenOrCreate);
streamReader r = new StreamReader(fs);
Dictionary<string, Dictionary<string,string>> main = r.read();

У кого-то есть идеи, что я могу сделать?

1 ответ

Решение

Во-первых, вам нужно выполнить чтение r.read(), Затем - десериализовать прочитанную структуру.

Обратите внимание, что это хорошая практика, чтобы положить IDisposable объекты в using заявление.

    static Dictionary<string, Dictionary<string, string>> ReadFromFile()
    {
        using (var fs = new FileStream("C:/test.dat", FileMode.Open))
        {
                var bw = new BinaryFormatter();
                return (Dictionary<string, Dictionary<string, string>>)bw.Deserialize(fs);
        }
    }

    static void WriteToFile(Dictionary<string, Dictionary<string, string>> dic)
    {
        using (var fs= new FileStream("C:/test.dat", FileMode.OpenOrCreate))
        {
            using (var w = new StreamWriter(fs))
            {
                var bw = new BinaryFormatter();
                bw.Serialize(fs, dic);
                w.Write(dic);
            }
        }
    }
Другие вопросы по тегам