如何通过StreamReader之外的循环显示我的数据

时间:2017-04-11 01:57:16

标签: c# streamreader

所以我尝试在使用部分之外的StreamReader中显示我的数据。我能够将它显示在StreamReader的所有INSIDE中,但是显示StreamReader的OUTSIDE更加复杂。

我知道我在StreamReader中的while循环将显示我需要的所有数据(并且它是)。但是我需要它从底部的for循环中显示出来。 (虽然循环仅作为参考)。

当我通过for循环运行时,我得到了 “结束 结束 结束 结束” 要么 “结束 的 记录 指示符“

当我在for循环中使用数组索引号时,我得到“结束”,当我使用“i”时,我得到“结束记录”。

如何让它显示我的while循环显示的内容?

 class Program
{
    static void Main(string[] args)
    {
        string[] lineOutVar;
          using (StreamReader readerOne = new StreamReader("../../FileIOExtraFiles/DataFieldsLayout.txt"))
            {
                string lineReader = readerOne.ReadLine();
                string[] lineOutput = lineReader.Split('\n');
            lineOutVar = lineOutput;



            while (readerOne.EndOfStream == false)
            {
                lineOutVar = readerOne.ReadLine().Split();
                Console.WriteLine(lineOutVar[0]);
            }

        }
        for (int i = 0; i < lineOutVar.Length; i++)
        {
            Console.WriteLine(lineOutVar[0]);
        }

3 个答案:

答案 0 :(得分:0)

使用List类。

    List<string> lineOutVar = new List<string>();
    using (System.IO.StreamReader readerOne = new System.IO.StreamReader("../../FileIOExtraFiles/DataFieldsLayout.txt"))
    {
        while(readerOne.EndOfStream == false)
        {
            string lineReader = readerOne.ReadLine();
            lineOutVar.Add(lineReader); //add the line to the list of string
        }
    }

    foreach(string line in lineOutVar) //loop through each of the line in the list of string
    {
        Console.WriteLine(line);
    }

答案 1 :(得分:0)

获取内容:

string[] lineOutVar;
 List<string[]> lst_lineOutVar = new List<string[]>();
 using (StreamReader readerOne = new StreamReader("E:\\TEST\\sample.txt"))
 {
       string lineReader = readerOne.ReadLine();
       string[] lineOutput = lineReader.Split('\n');
       lineOutVar = lineOutput;



       while (readerOne.EndOfStream == false)
        {
                    lineOutVar = new string[1];
                    lineOutVar = readerOne.ReadLine().Split();

                    lst_lineOutVar.Add(lineOutVar);

                    //Console.WriteLine(lineOutVar[0]);
                }

                String getcontent = string.Empty;
                foreach (var getLst in lst_lineOutVar)
                {
                    getcontent = getcontent + "," + getLst[0].ToString();
                }


                Console.WriteLine(getcontent);

            }

答案 2 :(得分:0)

您也可以跳过StreamReader并使用File.ReadAllLines

string[] lineOutVar = File.ReadAllLines("../../FileIOExtraFiles/DataFieldsLayout.txt");

现在你有一个文件行数组,你可以循环它们并按你喜欢的方式拆分它们。