首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 读写自定义二进制文件格式解决方案

2013-07-16 
C# 读写自定义二进制文件格式class myUSER{public byte ID { get set }public string user_name { get

C# 读写自定义二进制文件格式
class myUSER
    {
        public byte ID { get; set; }
        public string user_name { get; set; }
        public string name_pass { get; set; }
        public bool guest { get; set; }
    }

            myUSER myuser = new myUSER();
            myuser.ID = 101;
            myuser.user_name = "XXXXXX";
            myuser.name_pass = "123456";
            myuser.guest = false;

            byte[] data = new byte[42];

            data[0] = myuser.ID;
            Array.Copy(System.Text.Encoding.Unicode.GetBytes(myuser.user_name), 0, data, 1, myuser.user_name.Length*2);
            Array.Copy(System.Text.Encoding.Unicode.GetBytes(myuser.name_pass), 0, data, 21,myuser.name_pass.Length*2);
            data[41] = Convert.ToByte(myuser.guest);

            try
            {
                FileStream fs=File.Open(Application.StartupPath + "\\wljs.bin",FileMode.Create,FileAccess.ReadWrite);
                fs.Write(data, 0,42);

                fs.Flush();
                fs.Close();
            }
            catch
            {
            }

能写入到文件中,但如果要进行插入和删除应该怎么办?谢谢!删除我想可做个删除标志后不去读它,但插入呢?难道每次都要建个临时文件来导一次?初学编程,请指教!谢谢了!


[解决办法]
设置读写位置,比如:fs.Position=5,然后写入
[解决办法]
带有不定长字符串,建议用明文保存,否则数据结构会比较复杂。
[解决办法]
如果是出于保密的目的
可以将字符串转换为字节流,再与某个值异或,或是经过转换后存储,读取的时候也反过来处理,然后再转换为字符串,也可以实现二进制保存,加密的功能。
[解决办法]
插入可以换成追加,不然就得用临时文件导,文件小的话,内存中导就好了,这个不复杂。
[解决办法]
你插入就再写这个文件就行了,你可以获取你要插入的位置的postion,再写入内容就行了

热点排行