我有一个包含以下
的文本文件Name address phone salary
Jack Boston 923-433-666 10000
所有字段都以空格分隔。
我正在尝试编写一个C#程序,这个程序应该读取这个文本文件,然后将其存储在格式化的数组中。
My Array如下:
address
salary
当我试图查看谷歌时,我得到的是如何在C#中读写文本文件。
非常感谢你的时间。
答案 0 :(得分:6)
您可以使用File.ReadAllLines方法将文件加载到数组中。然后,您可以使用for循环遍历这些行,并使用字符串类型的Split方法将每行分隔成另一个数组,并将值存储在格式化的数组中。
类似的东西:
static void Main(string[] args)
{
var lines = File.ReadAllLines("filename.txt");
for (int i = 0; i < lines.Length; i++)
{
var fields = lines[i].Split(' ');
}
}
答案 1 :(得分:2)
不要重新发明轮子。可以使用例如fast csv reader,您可以在其中指定所需的delimeter
。
互联网上有很多其他人,只需搜索并选择符合您需求的那些。
答案 2 :(得分:1)
这个答案假设你不知道给定行中每个字符串之间有多少空格。
// Method to split a line into a string array separated by whitespace
private string[] Splitter(string input)
{
return Regex.Split(intput, @"\W+");
}
// Another code snippet to read the file and break the lines into arrays
// of strings and store the arrays in a list.
List<String[]> arrayList = new List<String[]>();
using (FileStream fStream = File.OpenRead(@"C:\SomeDirectory\SomeFile.txt"))
{
using(TextReader reader = new StreamReader(fStream))
{
string line = "";
while(!String.IsNullOrEmpty(line = reader.ReadLine()))
{
arrayList.Add(Splitter(line));
}
}
}