Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字节[]创建文件时,最好使用哪个选项?_C#_.net_File - Fatal编程技术网

C# 从字节[]创建文件时,最好使用哪个选项?

C# 从字节[]创建文件时,最好使用哪个选项?,c#,.net,file,C#,.net,File,我想用byte[]创建一个文件,哪一个最好 byte[] content=File.ReadAllBytes(@"C:\ServiceLog.txt"); FileStream stream = new FileStream(@"C:\ServiceLog1.txt", FileMode.Create, FileAccess.ReadWrite); stream.Write(content, 0, content.Length); stream.Close(); 或 如果您有一个byte[]

我想用byte[]创建一个文件,哪一个最好

byte[] content=File.ReadAllBytes(@"C:\ServiceLog.txt");

FileStream stream = new FileStream(@"C:\ServiceLog1.txt", FileMode.Create, FileAccess.ReadWrite);
stream.Write(content, 0, content.Length);
stream.Close();


如果您有一个
byte[]
,那么最好只使用
writealbytes
,让包装器方法来处理其余部分。
Stream
方法在(奇怪的是)流式传输数据时非常有用,这意味着:当您开始编写时,您可能不知道所有内容。既然您有
字节[]
,只需告诉我们。但是,在一般情况下,请注意,基于
字节[]
的API可能比基于
流的API对内存的影响更大,尤其是对于大型内容。

所有字节都已在内存中,因此请使用:

File.WriteAllBytes(@"C:\12.txt",content);

流方法在处理非常大的文件时非常有用,并且不想将所有内容都保存在内存中。

旁注:使用
FileStream
时,应该确保
Dispose()
正确地处理它,通常是通过
使用
。这样用户写字节的效率更高,代码更少。感谢您的提示。在使用File.writealBytes时,我遇到了资源不足错误,并能够通过切换到流方法来修复它。
File.WriteAllBytes(@"C:\12.txt",content);