在文件末尾追加字节数组 [英] Append Byte Array at the End of an File

查看:0
本文介绍了在文件末尾追加字节数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要将字节数组追加到现有文件。它必须位于文件的末尾。我已经可以设法在文件的开头写了。(由于堆栈溢出;))。

代码:

public bool ByteArrayToFile(string _FileName, byte[] _ByteArray)
{
   try
   {
      // Open file for reading
      System.IO.FileStream _FileStream = 
         new System.IO.FileStream(_FileName, System.IO.FileMode.Create,
                                  System.IO.FileAccess.Write);
  // Writes a block of bytes to this stream using data from
  // a byte array.
  _FileStream.Write(_ByteArray, 0, _ByteArray.Length);

  // close file stream
  _FileStream.Close();

  return true;
   }
catch (Exception _Exception)
{
  // Error
  Console.WriteLine("Exception caught in process: {0}",
                    _Exception.ToString());
}

// error occured, return false
return false;

}

从此处获取:

Link

但我需要它放在文件末尾

提前谢谢。

找到解决方案:

FileStream writeStream;
        try
        {
            writeStream = new FileStream(_FileName, FileMode.Append,FileAccess.Write);
            BinaryWriter writeBinay = new BinaryWriter(writeStream);
            writeBinay.Write(_ByteArray);
            writeBinay.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }

推荐答案

不使用System.IO.FileMode.Create,而使用System.IO.FileMode.Append-它正好执行您需要的操作。

来自MSDN:

上的FileMode Enumeration
追加:如果文件存在,则打开该文件并查找到文件末尾,或创建一个新文件。这需要FileIOPermissionAccess.Append权限。FileMode.Append只能与FileAccess.Write一起使用。尝试查找到文件结尾之前的位置会引发IOException异常,而任何读取尝试都会失败并引发NotSupportedException异常。

这篇关于在文件末尾追加字节数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆