如何将列表保存到文件然后将项目读回ListBox?

时间:2014-09-30 18:03:17

标签: c# list io

我试图在不使用Serialize的情况下将简单列表保存到文件中。这可能吗?

public partial class Form1 : Form
{
    public List<string> _testList = new List<string>();

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int _add = 0;
        string _addString ="";
        for (int i = 0; i < 5; i++)
        {
            _add =+ i;
            _addString = Convert.ToString(_add);
            _testList.Add(_addString);
        }

        TextWriter tw = new StreamWriter("SavedList.txt", true);

        foreach (string s in _testList)
            tw.WriteLine(s);

        tw.Close();


        StreamReader streamReader = new StreamReader("SavedList.txt");
        // Read the data to the end of the stream.
        listBox1.Text = streamReader.ReadToEnd();
        // Close the text stream reader.
        streamReader.Close();
        // Close the file stream.
        //fileStream.Close();

    }

    private void button2_Click(object sender, EventArgs e)
    {
        Close();
    }
}

这不会发出任何错误,但它什么都不做。

如果有必要,我会使用Serialize,但怀疑是没有必要的。是吗?

2 个答案:

答案 0 :(得分:2)

您可以使用File类来实现此目的。

        File.WriteAllLines("SavedList.txt", _testList.ToArray()); 

要阅读它,您可以使用:

        string[] lines = File.ReadAllLines("SavedList.txt");
        foreach (string line in lines)
            listBox1.Items.Add(line);

答案 1 :(得分:2)

您的问题是Text的{​​{1}}字段 不会那样工作。

变化:

ListBox

为:

listBox1.Text = streamReader.ReadToEnd();

“文本”字段包含当前选定的文本。它不是用于向列表中添加项目。