如何使用C#将字符串添加到文本文件中的特定行

时间:2017-10-02 17:45:47

标签: c#

我需要你的帮助, 我试图添加一个字符串" MyString"到文本文件中的特定行,但还没有。 例如 这是我的文本文件的内容:

First Name.
Last Name.
Date of Birth.
Counrty.

现在我正在寻找的是添加" MyString"将是" City"在#34;出生日期"之后的下一行。所以结果可能是这样的:

First Name.
Last Name.
Date of Birth.
City.
Counrty. 

我试过了:

File.AppendAllText(@"C:\\Users\\Volki\\Desktop\\TextFile.txt", 
    string.Format("{0}{1}", "Date of Birth.", "City"));

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

string PathFile=@"c:\temp\testxx.TXT";

List<string> Listvalue = File.ReadAllLines(PathFile).ToList();
int IndexSearch = Listvalue.IndexOf("Date of Birth.");

if (IndexSearch>=0)
{
   Listvalue.Insert(IndexSearch+1, "City."); 
   File.WriteAllLines(PathFile, Listvalue.ToArray()); 
}

答案 1 :(得分:-1)

  • 创建string[] currFile并从您的文件中读取(您将获得包含4个元素的数组)
  • 创建另一个string[] newFile,但大小为currFile.Length + 1
  • currFile复制到newFile,但第四行设为第五行(在新文件中,您有前3行,一行为空行和第五行。
  • 将城市存储到newFile第四行
  • 将其保存到文本文件

如果我在评论中发布了一些错误,我会匆匆设置

编辑:

你可能做的是使用Newtonsoft.Json所以你有课:

public User
{
    public string FirstName;
    public string LastName;
    public DateTime dateOfBirth;
    public string Country;
}

然后你就这样使用它:

public MyClass
{    

    public MyClass()
    {
        User user = new User();
        user.FirstName = "User1";
        ...
        WriteUser(user);

        User user1 = ReadUser();
        string username = user1.FirstName;
    }

    void WriteUser(User user)
    {
        string stringToWriteToFile = JsonConvert.SerializeObject(user);
        //Write this string to file
    }

    User ReadUser()
    {
        string stringFromFile = ...
        return JsonConvert.DeserializeObject<User>(stringFromFile);
    }
}