如何从文件中读取并保存到4个不同的变量(C#)?

时间:2015-03-27 15:18:33

标签: c# sql streamreader system.io.file

我试图用我的SQL数据库的信息创建一个设置文件,但我目前遇到的问题是我似乎无法读取每一行并将其保存到另一个变量。

 private void readFile()
    { 
        {
            using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\Settings.txt", true))

            while (sr.Peek() >= 0)
            {
                CurrentLine = sr.ReadLine();

            }
        }
    }

我不确定如何设置它以便我可以将每个不同的行写入我的4个变量。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

我会使用一个数组,你可以通过索引访问它:

string[] lines = File.ReadAllLines(@"C:\Users\Settings.txt");
string firstLine = lines[0];
// and so on, keep in mind that it could have less lines

使用您的四个变量的StreamReader方法更加繁琐:

using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\Settings.txt", true))
{ 
    string line;
    int currentLineNumber = 0;
    while ((line = sr.ReadLine()) != null)
    {
        switch (++currentLineNumber)
        {
            case 1: first = line; break;
            case 2: second = line; break;
            case 3: third = line; break;
            case 4: fourth = line; break;
        }
    }
}

答案 1 :(得分:1)

当我需要在文件中存储设置时,我创建了一个用于保存信息的类,例如

public class Settings{
   public string ConnectionString {get;set;}
   public string DatabaseName {get;set;}
   public DateTime Started {get;set;}
}

保存设置:

var settings = new Settings(){
   ConnectionString = "blah blah blah",
   DatabaseName = "blah blah blah",
   Started = DateTime.Now,
};
var json = JsonConvert.SerializeObject(settings);
File.WriteAllText(@"C:/Settings.txt", json);

加载设置:

var json = File.ReadAllText(@"C:/Settings.txt");
var settings = JsonConvert.DeserializeObject(json);

我发现这种可靠,灵活和稳定。 这也意味着您不必担心在(例如)DateTime和String之间进行转换。您也无需担心设置值的顺序。

(这使用Json.NET包。)