C# 文件与字节数组Bytes[]之间相互转换
C# 文件与字节数组Bytes[]之间相互转换
using System.IO;
namespace FileBytes
{
class Program
{
static void Main(string[] args)
{
byte[] bytes = FileToBytes(@"D:\1.txt");
if (bytes.Length > 0)
{
// 重新保存一份文件
BytesToFile(bytes, @"D:\2.txt");
}
// 文件重新保存md5, sha1不变
}
/// <summary>
/// 文件 -> Bytes
/// </summary>
/// <param name="path">指定路径文件</param>
/// <returns>返回Stream</returns>
public static byte[] FileToBytes(string path)
{
try
{
if (!System.IO.File.Exists(path)) { return new byte[0]; }
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
// 读取文件的 byte[]
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, bytes.Length);
return bytes;
}
}
catch
{
throw;
}
}
/// <summary>
/// Bytes -> 文件
/// </summary>
/// <param name="bytes">byte数组</param>
/// <param name="path">保存地址</param>
public static void BytesToFile(byte[] bytes, string path)
{
try
{
// 文件存在则删除
if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); }
// 写入文件,方式一
using (FileStream fs = new FileStream(path, FileMode.CreateNew))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Write(bytes, 0, bytes.Length);
}
}
// 写入文件,方式二
//System.IO.File.WriteAllBytes(path, bytes);
}
catch
{
throw;
}
}
}
}

浙公网安备 33010602011771号