c# - .NET - 行以序列化结束
问题描述
是否可以独立于操作系统为序列化设置行尾格式(\r\n vs \n)?所以在 WIN 和 Linux 中命令的结果会是一样的吗?
我的意思是结果
System.Text.Json.JsonSerializer.Serialize(data, new JsonSerializerOptions {WriteIndented = true});
或者
Newtonsoft.Json.JsonConvert.SerializeObject(data, Formatting.Indented);
将在两个系统中:
{\r\n
"a": "b"\r\n
..
}
非常感谢。汤姆
解决方案
没有内置任何内容,但您可以序列化为 aMemoryStream
而不是直接序列化到文件,重新定位到流的开头,在其上打开 aStreamReader
然后手动逐行(从 读取StreamReader
)写入二进制模式打开的文件,输入您希望的任何行尾。
如果您正确使用Span<>
slices 而不是Substring
,它实际上与原始调用一样有效。
推荐阅读
- google-apps-script - 以编程方式与特定用户(不是 Teamdrive 成员)共享 Teamdrive 中的文件
- netsuite - 如何将内联 HTML 列添加到套件脚本子列表?
- google-app-engine - gcloud app deploy 和 kubectl Expose 部署有什么区别?
- postgresql - 触发更新某些表而不更新主表
- ios - 使用 userDefaults 保存自定义背景颜色
- jquery - 链接依赖的 jQuery 延迟进度,失败然后
- c# - LRU缓存问题的两种解决方案:为什么一种比另一种快?
- python - 得到零python除法
- eclipse - P2 垃圾收集器不删除插件
- php - 从 URL 获取文件首先工作,但不是稍后在脚本上