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

如何从文件中读取并保存到4个不同的变量(C#)?,c#,sql,streamreader,system.io.file,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)

我正试图创建一个包含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个变量


任何帮助都将不胜感激

我将使用一个数组,您可以通过索引访问该数组:

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;
        }
    }
}

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

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);
加载设置:

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包。)

另一种方法是不要重新发明轮子和使用,它是为应用程序设置和连接字符串设计的。app.config文件是您的朋友!