C# 读二进制的心得 之 binaryreader

it2022-05-09  29

原文已修改,,参考http://hi.baidu.com/forever6164/blog/item/fbba7977e1b1511fb051b985.html 这是我写的一个二进制读写程序,, 我想要测试的是   string str    的值不一样时会有什么结果,,, 当是"ad,sad,as,dasf,我我";时,,,,,提示是这样的 1.ad,sad,as,dasf,我我 2.19 3.15 4.ad,sad,as,dasf, 当是"ad,sad,as,dasf,我我,";时,,,,,提示是这样的 1.ad,sad,as,dasf,我我, 2.20 3.20 4.ad,sad,as,dasf,我我, 您应该看出来我要说什么了,,,,就是,最后一个字符如果是汉字结尾的,,它就不要的... 害我找半天错....          string SSConfig = Application.StartupPath + "\\s.data";

          //string str = "ad,sad,as,dasf,我我";           string str = "ad,sad,as,dasf,我我,";           MessageBox.Show(str);           byte[] bywr = System.Text.Encoding.Default.GetBytes(str);

          MessageBox.Show(bywr.Length.ToString());

          BinaryWriter bw;           FileStream fs;           try           {               fs = File.OpenWrite(SSConfig);               bw = new BinaryWriter(fs);               bw.Write(bywr);               bw.Flush();               bw.Close();               fs.Close();           }           catch (Exception ee)           {               bw = null;               fs = null;               //FindException(ee.Message);           }

          //read           byte[] byrr;

          BinaryReader br1,br2;           FileStream fs1, fs2;           try           {               fs1 = File.OpenRead(SSConfig);               br1 = new BinaryReader(fs1);               //bytemp = br.ReadBytes(620);               int iItemsDatasLen = 0;               while (br1.PeekChar() != -1)               {                   br1.ReadByte();                   iItemsDatasLen++;               }               br1.Close();               fs1.Close();//得到长度 会让你吓一跳               //second read               fs2 = File.OpenRead(SSConfig);               br2 = new BinaryReader(fs2);

              byrr = br2.ReadBytes(iItemsDatasLen);//read the bytes,but you will find it may lose something...               br2.Close();               fs2.Close();

              MessageBox.Show(iItemsDatasLen.ToString());               string ReStr = System.Text.Encoding.Default.GetString(byrr);               MessageBox.Show(ReStr);           }           catch (Exception ee)           {           }

转载于:https://www.cnblogs.com/ijunxiong/articles/1124076.html


最新回复(0)