我要创建一个包含所有列表框项目的.dat文件。
这是编写代码:
using (FileStream fs = new FileStream(@"Test.dat", FileMode.CreateNew))
{
using (BinaryWriter w = new BinaryWriter(fs))
{
listBox1.Items.Add("Hello");
listBox1.Items.Add("World");
string[] words = new string[listBox1.Items.Count];
listBox1.Items.CopyTo(words, 0);
foreach(string word in words)
{
w.Write(word);
}
w.Close();
fs.Close();
}
}
这是阅读代码:
using (FileStream fs = new FileStream(@"Test.dat", FileMode.Open, FileAccess.Read))
{
using (BinaryReader r = new BinaryReader(fs))
{
textBox1.Text = r.ReadString();
r.Close();
fs.Close();
}
}
但我只从列表框中获得第一项 Hello 。 有没有办法从列表框中获取所有项目并使它们成为字符串数据文件?
答案 0 :(得分:2)
你让它变得更加复杂:
保存项目:
File.WriteAllLines(@"Test.data", listBox1.Items.Cast<string>().ToArray());
然后阅读它们,反过来:
listBox1.Items.AddRange(File.ReadAllLines(@"Test.data"));
答案 1 :(得分:0)
当您使用foreach时,为什么不使用
for (int i = 0; i < listBox1.Items.Count; i++)
{
w.Write(listBox1[i].ToString());
}
答案 2 :(得分:0)
要从BinaryReader中读取 if 这是您需要的,您需要一个这样的循环:
while (r.PeekChar() >= 0) textBox1.Text += r.ReadString() + "\r\n";
或者你只得到第一个字符串。
在没有推进文件指针的情况下,查看是否在阅读器中有更多内容,请参阅MSDN
当然要从列表框的项目中创建一个文本文件&#39;文本LarsTech的答案是......