Я пытался десериализовать текстовый файл с помощью streamwriter, у меня проблема в том, что когда я десериализирую / перечитываю текстовый файл, он позволяет мне сохранять его только в виде строки.Хорошо, я могу это сделать, но в конечном итоге я хочу, чтобы это был пользовательский тип, который есть в моей программе.Цель состоит в том, чтобы использовать streamwriter для записи и чтения из текстового файла, поэтому я не могу использовать xml или двоичный файл для этой цели.
Вот как мои методы выглядят сейчас, и я не уверенкак правильно добавить его обратно в список."Obj.add (reader.ReadLine ()); выдает ошибку, говоря, что я не могу преобразовать строку в T.
public static void TextFileSerialize<T>(string fileName, List<T> list)
{
StreamWriter writer = null;
try
{
writer = new StreamWriter(fileName);
for (int i = 0; i < list.Count; i++)
{
writer.WriteLine(list[i].ToString());
}
writer.Flush();
}
finally
{
if (writer != null)
writer.Close();
}
}
public static List<T> TextFileDeSerialize<T>(string filename)
{
List<T> obj = null;
StreamReader reader = new StreamReader(filename);
try
{
while (!reader.EndOfStream)
{
obj.Add(reader.ReadLine());
}
}
finally
{
if (reader != null)
reader.Close();
}
return obj;
}
Так выглядит текстовый документ после сохранения.
Butterfly0 sdfg 44 Женский 90 - это размер, и Flapping - это звук его движения
Butterfly1 sdfg 44 Женский 90 - это размер, а Flapping - его звук движения
Butterfly2sdfg 44 Женский 90 - это размер, и Flapping - это звук его движения
Butterfly3 sdfg 44 Женский 90 - это размер, и Flapping - это его звук движения
Butterfly4 sdfg 44 Женский 90 - это размер, а Flapping - этозвук его движения