原文已修改,,参考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
