首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从文件中读取数据并将其赋值给变量

从文件中读取数据并将其赋值给变量
EN

Stack Overflow用户
提问于 2019-06-21 01:25:15
回答 2查看 52关注 0票数 0

我需要从文件中读取数据,所以我有以下代码。

public static void readData()
{
    TextReader readFile;
    string chain;
    bool found = false;
    string[] fields = new string[2];
    char[] breakUp = { ':' };

    try
    {     
        readFile = new StreamReader("C:\\Users\\unam\\Documents\\Hugo\\Datos.txt");

        chain = readFile.ReadLine();
        while (chain != null)
        {
            fields = chain.Split(breakUp);


            if (fields[0].Trim().Equals("Name"))
            {
                name = fields[1].Trim();            
            }
            else
            {
                if (fields[0].Trim().Equals("Age"))
                {
                    Age = fields[1].Trim();    
                }
            }
            readFile.Close();

         }
    }
    catch(FileNotFoundException fe)
    {
        Console.WriteLine("¡File not found!" + fe.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("¡File not found!" + e.Message);
    }
}         

在这份文件中我有

雨果

  • 姓名:
  • 年龄:23岁

当我执行代码时,它停留在第一个if中的循环中,所以它只是一次又一次地读取名称,我的问题是,我如何才能走出那个循环来读取其他数据?

EN

回答 2

Stack Overflow用户

发布于 2019-06-21 01:28:09

您需要更新每次读取的字符串:

       chain = readFile.ReadLine();
       while (chain != null)
       {
           fields = chain.Split(breakUp);


           if (fields[0].Trim().Equals("Name"))
           {
                name = fields[1].Trim();
           }
           else
           {
               if (fields[0].Trim().Equals("Age"))
               {
                    Age = fields[1].Trim();
               }
            }
       chain = readFile.ReadLine(); // <--
       }
       readFile.Close();

正如Broots Waymb所指出的,您也可以将读取放入while-condition中:

       while ((chain = readFile.ReadLine()) != null)
       {
           fields = chain.Split(breakUp);


           if (fields[0].Trim().Equals("Name"))
           {
                name = fields[1].Trim();
           }
           else
           {
               if (fields[0].Trim().Equals("Age"))
               {
                    Age = fields[1].Trim();
               }
            }
       }
       readFile.Close();
票数 2
EN

Stack Overflow用户

发布于 2019-06-21 01:30:03

当您到达文件末尾时,YOu需要检查,请参阅Docs

             using (StreamReader sr = new StreamReader(path)) 
            {
                while (sr.Peek() >= 0) 
                {
                    Console.WriteLine(sr.ReadLine());
                }
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56691099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档