c# - 如何写入文本文件而不覆盖已经存在的文本?
问题描述
我需要创建一个名为 publish 的方法,以 JSON 格式获取名称、描述、端点、操作数和操作数类型,并将其写入文本文件。我已经实现了那部分,但是在第一次 API 调用之后,文本文件中的文本被覆盖,这不是我想要的。我在下面包含了模型类和控制器类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Registry.Models
{
public class publishModel
{
public string Name { get; set; }
public string Description { get; set; }
public string endpoint { get; set; }
public int NoOfoperands { get; set; }
public string operandType { get; set; }
}
}
using Newtonsoft.Json;
using Registry.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Web.Http;
namespace Registry.Controllers
{
public class publishController : ApiController
{
[Route("api/publish")]
[HttpPost]
public string publish(publishModel pModel)
{
string servicePath = @"C:\Users\ASUS\source\repos\DC assignment 1\Services.txt";
MemoryStream ms = new MemoryStream();
var write = new Utf8JsonWriter(ms);
write.WriteStartObject();
write.WriteString("Name", pModel.Name);
write.WriteString("Description", pModel.Description);
write.WriteString("Endpoint", pModel.endpoint);
write.WriteString("No of operands", pModel.NoOfoperands.ToString());
write.WriteString("Operand type", pModel.operandType);
write.WriteEndObject();
write.Flush();
string json = Encoding.UTF8.GetString(ms.ToArray());
//string json = JsonConvert.SerializeObject(pModel);
try
{
using (StreamWriter writer = new StreamWriter(servicePath))
{
writer.Write(json);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
return "Description saved";
}
}
}
解决方案
为您的 StreamWriter 添加一个额外的参数:
using (StreamWriter writer = new StreamWriter(servicePath, true))
这告诉它您打开写入路径,但附加到文件。当您不传入布尔值(这就是您正在做的事情)时,它默认为覆盖文件。
推荐阅读
- python-3.x - 如何从外部 txt 文件中获取随机行?
- javascript - 反序列化 Json 字典 obj 以显示多个值
- java - 服务器不从客户端套接字读取消息
- python - 在 PySide2 中修复线程
- react-native - 自定义组件中的 react-native 样式自动完成
- java - 使用spring的Jasper报告:文件格式和扩展名不匹配xls
- python - 删除文件中的每个空行 - Python/JSONl
- python - 直接在 Kubernetes pod 中访问我的 Flask 应用程序日志
- c# - 如何使用 C# 将 SharePoint 站点文件夹映射为网络驱动器?
- json - Golang json 解组