RT,我有一个Image图片 格式不一定,然后我通过MemoryStream流将图片保存在一个Byte数组中,然后将整个Byte数组 以二进制的形式保存在文件里面,接着从该文件中读取字节留到byte数组, 再转换成 Image图片,那么在从文件中读取字节流的时候读取出来的数据保存在Byte数组里面,那么整个 byte数组 应该定义多大呢???
说 不好说清楚,我上代码吧,帮我看看 会不会 造成数组不够长的情况:
代码写入文件的:
System.IO.MemoryStream ms = new System.IO.MemoryStream();
this._image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bytes = new byte[] { };
bytes = ms.GetBuffer();
outStream.writeByteArray(bytes);
//上面是转换为byte数组,下面这段是写入文件:
public void writeByteArray(byte[] bytes)
{
long length = bytes.Length;
byte[] tbs = BitConverter.GetBytes(length);
for (int i = 0; i < tbs.Length; i++)
{
writer.Write(tbs[i]);
}
for (int i = 0; i < bytes.Length; i++)
{
writer.Write(bytes[i]);
}
}
读取文件数据的代码:
public byte[] readBytesArray()
{
ulong temp = 0;
ulong length = (ulong)BitConverter.GetBytes(temp).Length;
byte[] byLen = new byte[length];
for (ulong i = 0; i < length; i++)
{
byLen[i] = cacheBuff[this.position++];
}
length = BitConverter.ToUInt64(byLen, 0);
byte[] bytes = new byte[length];
for (ulong i = 0; i < length; i++)
{
bytes[i] = cacheBuff[this.position++];