Как читать и записывать объект списка в файл

Я написал объект списка в файл, подобный этому

private List<string> _cacheFileList=new List<string>(4);
_cacheFileList.Add("Something");
 using (StreamWriter file = new StreamWriter(@"cache.bin")) 
 {
 file.Write(_cacheFileList);
 }
</string></string>

Теперь, как я мог получить весь объект списка?

3 ответа

Вместо использования StreamWriter, используйте BinaryFormatter для сериализации вашего списка. Затем вы можете легко восстановить свой список за счет десериализации. MSDN имеет хороший пример того, как это сделать.


Если вам нужен текстовый файл с одной строкой для каждой записи списка, вы можете попробовать код ниже. Конечно, вам понадобится обработка ошибок и необходимо убедиться, что строки в списке не содержат строк новой строки.

// Write
List<string> _listA = new List<string>(4);
_listA.Add("Test");
_listA.Add("Test2");
_listA.Add("Test3");
_listA.Add("Test4");
System.IO.File.WriteAllLines("test.txt", _listA);

// Read
List<string> _listB = new List<string>(4);
_listB.AddRange(System.IO.File.ReadAllLines("test.txt"));
</string></string></string></string>


Если вы хотите просто написать список строк за строкой, вы можете изменить свой код следующим образом:

var cacheFileList = new List<string>(4);
cacheFileList.Add("Something");

using (var file = new StreamWriter(@"cache.bin"))
{
 file.Write(string.Join("\r\n", cacheFileList));
}
</string>

licensed under cc by-sa 3.0 with attribution.