如何读取和写入列表对象到文件中

时间:2014-09-02 11:57:55

标签: c# .net file streamreader

我已经将列表对象写入了像这样的文件

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

现在我怎样才能检索整个列表对象?

3 个答案:

答案 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));
}