写/读文本文件(C#)

时间:2015-10-16 21:08:40

标签: c# save read-write

我不是100%确定如何在标题中解释这个或如何搜索它,所以很抱歉如果以前发过这个帖子。我试图做的是读写一个文件,例如我会这样做:

WriteToFile(key + "=" + value);

在文本文件中,它会说:

  

AKEY =安勤

我能够相当容易地得到它,但我很想知道我是如何获得代码来找到关键的'并返回其价值。例如:

int integer = GetValue("AKey");

方法GetValue会找到'键'," AKey",如果它存在于文件中,则返回值。

1 个答案:

答案 0 :(得分:0)

为了完整起见,我将扩展我的评论,这里有一些示例代码,说明如何实现这一目标:

Dictionary<string, string> _keys = new Dictionary<string, string>();

private void ReadInKeyFile(string keyFileName)
{
    _keys.Clear();

    string[] lines = System.IO.File.ReadAllLines(keyFileName);

    foreach (string line in lines)
    {
        string[] keyval = line.Split('=');
        _keys.Add(keyval[0], keyval[1]);
    }
}

private string GetValue(string key)
{
    string retVal = string.Empty;
    _keys.TryGetValue(key, out retVal);
    return retVal;
}

Dictionary<string, string>包含从文件读入的键/值对,因此当您想要刷新它时,可以使用文件名调用ReadInKeyFile函数。然后,您可以使用GetValue获取特定密钥的值(如果找不到密钥,则使用String.Empty。)

我在上面的代码中缺少一些明显的检查(文件不存在,行不包含=等),但它可以让你获得90%的支持。

修改

以下是添加新密钥并将其写入文件的扩展:

private void SaveKeysToFile(string keyFileName)
{
    StringBuilder sb = new StringBuilder();
    _keys.ToList().ForEach(kvp => 
       sb.AppendLine(string.Format("{0}={1}", kvp.Key, kvp.Value)));
    System.IO.File.WriteAllText(keyFileName, sb.ToString());
}

private void AddValue(string key, string value)
{
    _keys[key] = value;
}

SaveToFile方法将字典转换为您使用的文件格式,AddValue添加键和值(或更改现有密钥(如果已存在))。