C#读取文本文件并将数据存储在格式化数组中

时间:2012-03-19 20:13:15

标签: c#

我有一个包含以下

的文本文件
Name address phone        salary
Jack Boston  923-433-666  10000

所有字段都以空格分隔。

我正在尝试编写一个C#程序,这个程序应该读取这个文本文件,然后将其存储在格式化的数组中。

My Array如下:

address
salary

当我试图查看谷歌时,我得到的是如何在C#中读写文本文件。

非常感谢你的时间。

3 个答案:

答案 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));
        }
    }
}