我使用newtonsoft在windows应用程序中创建了一个Json格式文件。代码正常工作,json正在创建。但我想将新文件追加到旧的json文件中,现在它正在替换。我的代码是
List<DeviceData> tempDate = new List<DeviceData>();
DeviceData D = new DeviceData();
D.deviceId = St_Id.ToString();
D.ansId = AnswerStr;
tempDate.Add(D);
string ans = JsonConvert.SerializeObject(tempDate, Formatting.Indented);
System.IO.File.WriteAllText(@"E:\" + " device.json", ans);
任何人都可以提供帮助。谢谢。
答案 0 :(得分:2)
根据文档,方法writeAllText创建一个新文件,将指定的字符串写入文件,然后关闭该文件。如果目标文件已存在,则会被覆盖。
要实现您的目标,您需要检查文件是否存在
string ans = JsonConvert.SerializeObject(tempDate, Formatting.Indented);
if (File.Exists(@"E:\" + " device.json")
File.AppendAllText(@"E:\" + " device.json", appendText);
else
System.IO.File.WriteAllText(@"E:\" + " device.json", ans);
答案 1 :(得分:1)
使用File.AppendAllLines
个文档,示例位于http://msdn.microsoft.com/en-us/library/dd383691(v=vs.110).aspx)
System.IO.File.AppendAllLines(@"E:\" + " device.json", ans);
BTW:您应该考虑对文件内容进行反序列化。