【发布时间】:2018-04-05 07:54:28
【问题描述】:
我正在将文本写入文件,但在开头附加了特殊字符。任何人都可以指导它发生的原因以及我们如何避免它。
using (FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew))
{
using (BinaryWriter w = new BinaryWriter(fs))
{
w.Write(@"
COMMENT: OnDemand Generic Index File Format
COMMENT: This file has been generated by DOC Application
COMMENT: date");
}
}
当我打开这个文件时,我会在开头得到特殊字符:
COMMENT: OnDemand Generic Index File Format COMMENT: 这个文件有 由 DOC 应用程序生成
评论:日期
【问题讨论】:
-
出于兴趣,为什么二进制编写器不是文本编写器?
-
必须尝试删除@(" 和 COMMENT 之间的空格:
-
您发布的代码有不同的输出。前导字符是
v=0x76=118,这是写入的字符串的长度。这是BinaryWriter的行为。 (并且在第二条评论之前还有enter。) Linux 的结果可能不同(或者仅使用LF,而不是CR+LF)。 -
为避免这种情况 - 不要使用
BinaryWriter。它不适用于您尝试做的事情。请改用StreamWriter。
标签: c# .net filestream streamwriter