File.WriteAllBytes(string path, byte[] bytes)
方法是C#中文件I/O操作的一种,用来将字节数组写入指定的文件中。该方法会自动创建新文件并将字节数组写入其中,如果文件已经存在,则覆盖该文件的内容。以下是该方法的完整攻略。
方法参数说明
该方法有两个参数:
string path
: 要写入的文件的路径,可以是绝对路径或者相对路径。byte[] bytes
: 要写入文件的字节数组。
使用方法
使用File.WriteAllBytes方法需要引用命名空间System.IO
,调用该方法时需要传入两个参数,即文件路径和字节数组。示例如下:
using System.IO;
string path = @"D:\Test.txt";
byte[] bytes = {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100}; // Hello World
File.WriteAllBytes(path, bytes);
以上代码将Hello World
字符串所表示的字节数组写入了D:\Test.txt
文件中。
示例说明
下面给出两个示例,更好地说明该方法的使用。
示例1: 将网络资源保存到本地文件
using System.IO;
using System.Net;
string url = "https://www.baidu.com/";
string path = @"D:\baidu.html";
byte[] bytes = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
using (MemoryStream ms = new MemoryStream())
{
byte[] buffer = new byte[4096];
int count;
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, count);
}
bytes = ms.ToArray();
}
File.WriteAllBytes(path, bytes);
以上代码将Baidu首页的内容保存到本地的D:\baidu.html
文件中,并返回该文件的字节数组。
示例2: 将图片转换为字节数组
using System.IO;
string path = @"D:\Test.jpg";
byte[] bytes = null;
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
using (MemoryStream ms = new MemoryStream())
{
byte[] buffer = new byte[1024];
int count;
while ((count = fs.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, count);
}
bytes = ms.ToArray();
}
}
以上代码将本地D:\Test.jpg
文件读取到内存中,并返回该文件的字节数组。
需要注意的是,该方法适用于小文件和中等大小的文件,对于大文件来说,建议采用FileStream
和BufferedStream
的方式逐块读取文件,以避免内存不足的问题。