我在读写一个二进制文件时,遇到了一下的问题,请帮忙解决,代码如下:
buffer=new byte[100]; FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.None)BinaryReader reader = new BinaryReader(fs);
reader.Read( buffer,0,100);
在原文件中,存贮的是各种类型的数据,例如有int型(占四个字节),double型(占八个字节)的,还有string(占16个字节),并且分布是随机分布的,我想将文件中的内容先读入一个内存数组中(buffer[]),然后再将内存中的数据转化为相应的数据类型,例如buffer中的第1-4字节代表一整数(int型),则将其赋予一整型变量,第5-12字节代表一double型,则将其赋予一double型变量。那么现在的问题是:如何拆分buffer数组,将相应位置区间的数据赋予相应的变量类型,例如,将第1-4字节赋予一整型变量,将5-12字节赋予一double变量。还有string变量怎么赋值,恳请各位高手不吝赐教,或者谁以前写过类似的代码借鉴一下,不胜感激!!!!
buffer=new byte[100]; FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.None)BinaryReader reader = new BinaryReader(fs);
reader.Read( buffer,0,100);
在原文件中,存贮的是各种类型的数据,例如有int型(占四个字节),double型(占八个字节)的,还有string(占16个字节),并且分布是随机分布的,我想将文件中的内容先读入一个内存数组中(buffer[]),然后再将内存中的数据转化为相应的数据类型,例如buffer中的第1-4字节代表一整数(int型),则将其赋予一整型变量,第5-12字节代表一double型,则将其赋予一double型变量。那么现在的问题是:如何拆分buffer数组,将相应位置区间的数据赋予相应的变量类型,例如,将第1-4字节赋予一整型变量,将5-12字节赋予一double变量。还有string变量怎么赋值,恳请各位高手不吝赐教,或者谁以前写过类似的代码借鉴一下,不胜感激!!!!
static void Main(string[] args)
{
try
{
byte[] buffer=new byte[28];
string temp="0x";
string str1;
int i1;
using(FileStream fs = new FileStream("1.exe", FileMode.Open, FileAccess.Read, FileShare.None))
{
BinaryReader reader = new BinaryReader(fs);
reader.Read(buffer,0,28);
for(int i=0;i<4;i++)
{
temp+=buffer[i].ToString("X");
}
i1=Convert.ToInt32(temp,16); //interger
char[] tempchar=new char[16];
for(int i=16;i<28;i++)
{
tempchar[i-16]=(char)buffer[i];
}
str1=new string(tempchar); ///string
reader.Close();
}
Console.WriteLine("interger is {0},string is {1}.",i1,str1);
Console.Read();
}
catch (Exception e1)
{
Console.WriteLine(e1.Message);
Console.Read();
}
}