【问题标题】:C#: 2 unwanted additional characters are being appended during file write [duplicate]C#:在文件写入期间附加了 2 个不需要的附加字符 [重复]
【发布时间】:2010-03-08 20:09:14
【问题描述】:

可能重复:
Why does BinaryWriter prepend gibberish to the start of a stream? How do you avoid it?

public static void saveFile(string path, string data)
{
    using (Stream fileStream = File.Open(path, FileMode.Append, FileAccess.Write, FileShare.None)) 
    {
        using (BinaryWriter bw = new BinaryWriter(fileStream))
        {
            bw.Write(data);
        }
    }
}

但是,每次调用该方法时,它都会在写入前添加以下 2 个字符: .如果有任何区别,我会将其保存到 .txt 中。此外,该字符串在跟踪输出上显示良好。我该如何解决这个问题?

【问题讨论】:

标签: c#


【解决方案1】:

BinaryWriter.Write(string) http://msdn.microsoft.com/en-us/library/system.io.binarywriter.write.aspx - 以 BinaryWriter 的当前编码将 length-prefixed 字符串写入此流,并根据使用的编码和当前编码推进流的当前位置正在写入流的特定字符。

【讨论】:

  • 我们为此提供了荧光笔:awurl.com/nrftM7YoI
  • 只是我,还是更多人怀疑 URL 缩短和类似(如上面的 url)?突出显示是个好主意,但不用了,谢谢……我想知道我要去哪里。
【解决方案2】:

如果要将字符串保存到纯文本文件,请使用 StreamWriter 而不是 BinaryWriter:

public static void saveFile(string path, string data) 
{
    using (Stream fileStream = File.Open(path, FileMode.Append, FileAccess.Write, FileShare.None)) 
    { 
        using (StreamWriter sw = new StreamWriter(fileStream)) 
        { 
            sw.Write(data);
        }
    }
}

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2020-04-05
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2014-07-22
    • 2011-11-09
    相关资源
    最近更新 更多