我已经将列表对象写入了像这样的文件
private List<string> _cacheFileList=new List<string>(4);
_cacheFileList.Add("Something");
using (StreamWriter file = new StreamWriter(@"cache.bin"))
{
file.Write(_cacheFileList);
}
现在我怎样才能检索整个列表对象?
答案 0 :(得分:4)
使用BinaryFormatter
序列化您的列表,而不是使用StreamWriter
。然后,您可以通过反序列化轻松检索列表。 MSDN有一个关于如何做到这一点的好例子。
答案 1 :(得分:2)
如果您只想要一个每个列表条目单行的文本文件,您可以尝试下面的代码。当然,您需要进行错误处理,并且需要确保列表中的字符串不包含换行符。
// 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"));
答案 2 :(得分:0)
如果您只想逐行编写列表,那么您可以像这样修改代码:
var cacheFileList = new List<string>(4);
cacheFileList.Add("Something");
using (var file = new StreamWriter(@"cache.bin"))
{
file.Write(string.Join("\r\n", cacheFileList));
}