我需要将我的数组列表写入文本文件,到目前为止已经提出了这个代码。 现在我很困惑如何写“'线'使用textwriter到我的文本文件? 一个过程从下面的txt文件加载列表。
public void LoadArrayList()
{
TextReader tr;
tr = File.OpenText("C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt");
string line = tr.ReadToEnd();
Console.WriteLine(line);
if (line != null)
{
ActorArrayList.Add(line);
}
else
tr.Close();
}
然后我会在我的表单中填充组合框。
public void PopulateActors()
{
cboActor.Items.Clear();
foreach (string line in ActorArrayList)
{
cboActor.Items.AddRange(File.ReadAllLines("C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt"));
}
}
这个程序我需要它来编写我的整个数组" ActoryArrayList"进入文本文件。
public void WriteArrayList()
{
}
我很抱歉最初感到困惑。
答案 0 :(得分:12)
尝试使用以下代码
// Example #1: Write an array of strings to a file.
// Create a string array that consists of three lines.
string[] lines = { "First line", "Second line", "Third line" };
// WriteAllLines creates a file, writes a collection of strings to the file,
// and then closes the file.
System.IO.File.WriteAllLines(@"C:\Users\Mirro\Documents\Visual Studio 2010\Projects\Assessment2\Assessment2\act\actors.txt", lines);
输出:
// First line
// Second line
// Third line
答案 1 :(得分:2)
最好的方法是@ Leez的方式,但你也可以使用TextWriter和foreach运算符来实现:
//your array
string[] yourArray = { "fisrt", "second", "third" };
string text = "C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt";
using (TextWriter writer = File.CreateText(text))
{
foreach (string i in yourArray)
{
writer.WriteLine(i);
}
}
答案 2 :(得分:1)
System.IO.File.WriteAllText("FILE_PATH", line);
BTW,代码中的ArrayList
在哪里?另外,请考虑将System.IO.File.ReadAllText("FILE_PATH")
用于日常文件阅读。
如果您要将ArrayList
实际写入磁盘文件,则需要先将ArrayList
的内容序列化为XML或二进制等。然后您可以使用上述方法将该序列化表示写入文件。另请注意,序列化集合涉及一个名为深和浅复制的概念。 This question可以帮助您更好地理解这一概念。
答案 3 :(得分:1)
File.WriteAllLines(filePath, ActorArrayList.ToArray());
答案 4 :(得分:0)
WriteAllLines输出两个行尾字符(回车和换行符-\ r \ n)。如果您不希望每行(\ r \ n)的末尾有两个行尾字符,则可以使用StreamWriter仅输出一个字符(\ n)。
using (StreamWriter sw = new StreamWriter(@"C:\mypath\file.txt"))
{
foreach (string s in linesArray)
sw.Write(s + "\n");
}