C# 将数组列表写入文本文件
本文关键字:文本 文件 列表 数组 | 更新日期: 2023-09-27 18:32:45
我需要将我的数组列表写入文本文件,到目前为止已经想出了这段代码。现在我对如何使用文本编写器将"行"写入我的文本文件感到困惑?一个过程从下面的 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()
{
}
我很抱歉最初感到困惑。
尝试使用以下代码
// 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
最好的方法是@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);
}
}
System.IO.File.WriteAllText("FILE_PATH", line);
顺便说一句,您的代码中的ArrayList
在哪里?此外,请考虑使用 System.IO.File.ReadAllText("FILE_PATH")
进行日常文件读取。
如果要实际将ArrayList
写入磁盘文件,则需要首先将ArrayList
的内容序列化为XML或二进制等。然后,可以使用上述方法将该序列化表示形式写入文件。另请注意,序列化集合涉及一个称为深层和浅层复制的概念。这个问题可以帮助您更好地理解这个概念。
File.WriteAllLines(filePath, ActorArrayList.ToArray());
WriteAllLines 输出两个行尾字符(回车符和换行符 - ''r')。如果不希望每行末尾有两个行尾字符 (''r'),则可以使用 StreamWriter 仅输出一个字符 (')。
using (StreamWriter sw = new StreamWriter(@"C:'mypath'file.txt"))
{
foreach (string s in linesArray)
sw.Write(s + "'n");
}