C# 如何使用C向文本文件中的特定行添加字符串#
我需要你的帮助, 我正在尝试将字符串“MyString”添加到文本文件中的特定行中,但还不能。 例如 这是我的文本文件的内容:C# 如何使用C向文本文件中的特定行添加字符串#,c#,C#,我需要你的帮助, 我正在尝试将字符串“MyString”添加到文本文件中的特定行中,但还不能。 例如 这是我的文本文件的内容: First Name. Last Name. Date of Birth. Counrty. 现在我要找的是在“出生日期”之后的下一行中添加“MyString”将是“City”。所以结果可以是这样的: First Name. Last Name. Date of Birth. City. Counrty. 我试过: File.AppendAllText(@"C:\
First Name.
Last Name.
Date of Birth.
Counrty.
现在我要找的是在“出生日期”之后的下一行中添加“MyString”将是“City”。所以结果可以是这样的:
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"));
- 创建
并将文件读取到其中(您将得到包含4个元素的数组)string[]currFile
- 创建另一个
,但大小为string[]newFile
currFile.Length+1
- 将
复制到currFile
中,但第四行设置为第五行(在新文件中,前三行是空的,第五行是空的)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);
}
}
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());
}
公共MyClass
{
公共MyClass()
{
用户=新用户();
user.FirstName=“User1”;
...
编写器(用户);
User user1=ReadUser();
字符串username=user1.FirstName;
}
无效写入器(用户)
{
string stringToWriteToFile=JsonConvert.SerializeObject(用户);
//将此字符串写入文件
}
用户ReadUser()
{
字符串stringFromFile=。。。
返回JsonConvert.DeserializeObject(stringFromFile);
}
}
尝试以下方法:
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);
}
}
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());
}
stringpathfile=@“c:\temp\testxx.TXT”;
List Listvalue=File.ReadAllLines(PathFile.ToList();
int IndexSearch=Listvalue.IndexOf(“出生日期”);
如果(索引搜索>=0)
{
插入(IndexSearch+1,“城市”);
writeAllines(路径文件,Listvalue.ToArray());
}
执行此操作后,内存中会出现两个完整的文件副本。一次可以将其压缩到一行,但即使只有一个文件副本也会更好。我在编辑后的答案中添加了解决问题的另一种方法。我在编辑后的答案中添加了解决问题的另一种方法。如果文件很小,它可能会起作用,但它不会起作用将整个文件加载到内存不是一个好主意。这是一种方法…没有指定限制,但您可以提出更好的方法;)限制是RAM!!我做到了,看看我在问题上的评论。哈哈,他有一个文件,当然使用数据库是一个更好的主意,但这不是问题。。。