看看这个问题
public int ConvertByte2Int(byte[] b,int start,int count){
byte[] ss = new byte[count];
int j = 0 ;
for (int i = start; i < b.Length && j < count; i++)
{
ss[j] = b[i];
j++;
}
return BitConverter.ToInt32(ss, 0);
}
int pageWidth, pageHeight, totalPages, headerLength;
FileStream f = File.OpenRead(@"e:\test\1.docin");
//if(mFile.GetLength()<2) return;
//Stream f=
if (f.Length < 2) return;
//mFile.SeekToBegin();
//mFile.Read(&pageWidth,4);
//mFile.Read(&pageHeight,4);
//mFile.Read(&totalPages,4);
//mFile.Read(&headerLength,4);
byte[] temp = new byte[16];
f.Read(temp, 0, 16);
pageWidth = ConvertByte2Int(temp, 0, 4);
pageHeight = ConvertByte2Int(temp, 4, 4);
totalPages = ConvertByte2Int(temp, 8, 4);
headerLength = ConvertByte2Int(temp, 12, 4);
//BYTE *com=new BYTE[headerLength];
//mFile.Read(com,headerLength);
byte[] p = new byte[headerLength];
f.Read(p,4, headerLength);
报 偏移量和长度超出数组的界限,或者计数大于从索引到源集合结尾处的元素数量,怎么解决??? --------------------编程问答-------------------- --------------------编程问答-------------------- f.Read(p,4, headerLength);
如果headerLength=10的话那么你设置的参数4就是重第4个开始写入。。。而且写10个。。肯定要超出啊 --------------------编程问答-------------------- 要不你将headerLength+4要摸f.Read(p,0, headerLength);
--------------------编程问答-------------------- byte[] buffer= System.IO.File.ReadAllBytes(@"");
int i = BitConverter.ToInt32(buffer, 0);
string s = Encoding.Default.GetString(buffer, 4, 60);
--------------------编程问答-------------------- --------------------编程问答-------------------- 再顶上去看看 --------------------编程问答-------------------- 再顶上去看看
补充:.NET技术 , C#