如何将数据附加到二进制文件?

时间:2010-03-07 23:19:47

标签: c# .net

我有一个二进制文件,我想在文件的末尾添加一大块数据,如何使用C#和.net实现这一点?写入二进制文件的末尾还有什么要考虑的吗?非常感谢你的帮助。

3 个答案:

答案 0 :(得分:24)

private static void AppendData(string filename, int intData, string stringData, byte[] lotsOfData)
{
    using (var fileStream = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.None))
    using (var bw = new BinaryWriter(fileStream))
    {
        bw.Write(intData);
        bw.Write(stringData);
        bw.Write(lotsOfData);
    }
}

答案 1 :(得分:5)

您应该可以通过Stream

执行此操作
using (FileStream data = new FileStream(path, FileMode.Append))
{
    data.Write(...);
}

至于考虑因素 - 主要原因是:基础数据格式支持是否附加?除非它是您自己的原始数据或文本等,否则很多都不会。例如,格式良好的xml文档不支持追加(不考虑最终的结束元素)。也不会像Word文档那样。但有些人会这样做。所以;这是你的数据......

答案 2 :(得分:0)

使用StreamWriter并引用DotNetPerls,确保将True布尔值添加到StreamWriter构造函数中,如果另外留空,则会像往常一样覆盖:< / p>

using System.IO;

class Program
{
    static void Main()
    {
    // 1: Write single line to new file
    using (StreamWriter writer = new StreamWriter("C:\\log.txt", true))
    {
        writer.WriteLine("Important data line 1");
    }
    // 2: Append line to the file
    using (StreamWriter writer = new StreamWriter("C:\\log.txt", true))
    {
        writer.WriteLine("Line 2");
    }
    }
}

Output
    (File "log.txt" contains these lines.)

Important data line 1
Line 2

这是我从谷歌来到这里时实际寻找的解决方案,虽然它不是二进制文件,但希望它可以帮助其他人。