我需要将字节写入IEnumerable<byte>
文件。
我可以将其转换为数组并使用Write(byte[])
方法:
using (var stream = File.Create(path))
stream.Write(bytes.ToArray());
但由于IEnumerable
不提供集合的项目数,除非绝对必要,否则ToArray
不建议使用。
所以我可以在每次迭代中迭代IEnumerable
和使用:WriteByte(byte)
using (var stream = File.Create(path))
foreach (var b in bytes)
stream.WriteByte(b);
我想知道在写入大量数据时哪个会更快。
我猜使用Write(byte[])
根据数组大小设置缓冲区,因此在涉及数组时会更快。
我的问题是,当我只有一个IEnumerable<byte>
具有 MB 数据的数据时,哪种方法更好?将其转换为数组并调用Write(byte[])
或迭代它并WriteByte(byte)
为每个调用?