现在有一个整数数组,比如1,3,5,10;如何把这4个字节写入到一个二进制文件呢?也就是这个文件不是文本,它应该也是4*4个字节=16字节的长度(如果系统的整数是4字节表示的话)。
同理,如何读取这样的一个文件呢,包括一次读指定的字节数
代码最好详细点

解决方案 »

  1.   


     //write
               int[] intArray = { 1, 2, 3, 4 };
               using(FileStream fs = new FileStream(@"C:\test.dat",FileMode.CreateNew))
               using(BinaryWriter bw = new BinaryWriter(fs))
               {
                    foreach (var val in intArray)
                    {
                        bw.Write(val);
                    }
               }
                //read
               using (FileStream fs = new FileStream(@"C:\test.dat", FileMode.Open))
               using (BinaryReader br = new BinaryReader(fs))
               {
                   List<int> intList = new List<int>();
                   do 
                   {
                       intList.Add(br.ReadInt32());
                   } while (fs.Position < fs.Length);
               }
    一次读指定的字节数:
    br.ReadBytes(16);
      

  2.   

    string fname = Application.StartupPath + "\\grids.dat";
                FileStream fstr = new FileStream(fname, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                BinaryWriter bw = new BinaryWriter(fstr);
                foreach(int bwi in dt.AllGrids)
                        bw.Write(bwi);
                bw.Write("\n");