Answers:
基于问题的第一句话:“我试图将代表完整文件的Byte []数组写到文件中。”
阻力最小的路径是:
File.WriteAllBytes(string path, byte[] bytes)
记录在这里:
您可以使用一个BinaryWriter
对象。
protected bool SaveData(string FileName, byte[] Data)
{
BinaryWriter Writer = null;
string Name = @"C:\temp\yourfile.name";
try
{
// Create a new stream to write to the file
Writer = new BinaryWriter(File.OpenWrite(Name));
// Writer raw data
Writer.Write(Data);
Writer.Flush();
Writer.Close();
}
catch
{
//...
return false;
}
return true;
}
编辑:糟糕,忘记了这一finally
部分...可以说它是作为练习留给读者的;-)
您可以通过使用System.IO.BinaryWriter
Stream 来做到这一点,以便:
var bw = new BinaryWriter(File.Open("path",FileMode.OpenOrCreate);
bw.Write(byteArray);
Flush()
之前没有意义,Close()
因为Close()
它将刷新。更好的是使用using
也会冲洗'n'close 的子句。
您可以使用FileStream.Write(byte [] array,int offset,int count)方法将其写出。
如果您的数组名称为“ myArray”,则代码为。
myStream.Write(myArray, 0, myArray.count);
是的,为什么不呢?
fs.Write(myByteArray, 0, myByteArray.Length);
尝试BinaryReader:
/// <summary>
/// Convert the Binary AnyFile to Byte[] format
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public static byte[] ConvertANYFileToBytes(HttpPostedFileBase image)
{
byte[] imageBytes = null;
BinaryReader reader = new BinaryReader(image.InputStream);
imageBytes = reader.ReadBytes((int)image.ContentLength);
return imageBytes;
}