Читать словарь из файла данных
Я написал словарь в файл данных, мой словарь выглядит так:
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);
}
}
}