`
ooaer
  • 浏览: 138728 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

文件操作,加密,序列化

    博客分类:
  • C#
阅读更多
	
文件操作:
private void button1_Click(object sender, EventArgs e)
        {
            FileStream fs;
            if (File.Exists("E:\\gui_down\\gui.txt"))
                 fs= File.Create("E:\\gui_down\\gui.txt");
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //
            File.Encrypt("E:\\gui_down\\gui.txt");//加密文件,表其他用户不能访问
            File.Decrypt("E:\\gui_down\\gui.txt");//解密文件
            System.Security.AccessControl.FileSecurity fileScrt = new System.Security.AccessControl.FileSecurity();
            File.SetAccessControl("E:\\gui_down\\gui.txt", fileScrt);//增加某个文件的访问权限,增加安全性
        }

        private void button3_Click(object sender, EventArgs e)
        {
            FileInfo file = new FileInfo("E:\\gui_down\\gui.txt");//实例化文件类,指定的文件路径作为参数
            file.Create();//文件创建
        }

        private void button4_Click(object sender, EventArgs e)
        {
            string path;
            DialogResult result = openFileDialog1.ShowDialog();//打开对话框
            if (result == DialogResult.OK)
            {
                path = openFileDialog1.FileName;
                textBox1.Text = path;
            }
        }

        private void fileSystemWatcher1_Changed(object sender, FileSystemEventArgs e)//文件监视器
        {
            MessageBox.Show("E:\\gui_down\\gui.txt"+" changed");
        }

        private void button5_Click(object sender, EventArgs e)
        {
            FileStream fs = File.Create("E:\\gui_down\\feg.bin");//创建文件 返回的是文件流
            string line = "this is a test line.";
            UnicodeEncoding ue = new UnicodeEncoding();//编码类
            byte[] str = ue.GetBytes(line);//获取二进制流
            fs.Write(str, 0, str.Length);//用文件流对文件 读写
            fs.Close();//关闭文件流
        }

        private void button6_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream("E:\\gui_down\\feg.bin", FileMode.Open,FileAccess.ReadWrite);
            byte[] str = new byte[1024];
            fs.Read(str, 0, str.Length);//将文件读取到流中
            fs.Close();
            UnicodeEncoding ue = new UnicodeEncoding();
            string line = ue.GetString(str);
            MessageBox.Show(line);
        }

        private void button7_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream("E:\\gui_down\\gui.txt", FileMode.Append, FileAccess.Write);
            BufferedStream bs = new BufferedStream(fs);
            UnicodeEncoding ue = new UnicodeEncoding();
            byte[] str = new byte[1024];
            string line = "你好";
            str = ue.GetBytes(line);
            //加密,sha不可逆加密
            System.Security.Cryptography.SHA1Managed sha = new System.Security.Cryptography.SHA1Managed();
            byte[] shastr = new byte[1024];
            shastr = sha.ComputeHash(str);
            bs.Write(shastr,0,shastr.Length);
            bs.Close();
            fs.Close();

        }

        private void button8_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream("E:\\gui_down\\gui.txt", FileMode.Append, FileAccess.Write);
            BufferedStream bs = new BufferedStream(fs);//缓冲流
            StreamWriter sw = new StreamWriter(bs);//写入流
            string line = "你好"; 
         //   UnicodeEncoding ue = new UnicodeEncoding();
         // byte[] str = new byte[1024];
         //   str = ue.GetBytes(line);
            sw.WriteLine(line);
            sw.Close();
            bs.Close();
            fs.Close();
        }

        private void button9_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream("E:\\gui_down\\g.txt",FileMode.Open,FileAccess.Write);
            DeflateStream deflate = new DeflateStream(fs,CompressionMode.Compress);//deflate文件压缩
            System.IO.Compression.GZipStream gzip = new GZipStream(fs, CompressionMode.Compress);//gzip文件压缩

        }

        private void button10_Click(object sender, EventArgs e)
        {
            ArrayList at = new ArrayList();
            for(int i = 0;i<100;i++)
              at.Add(i);
            FileStream fs = File.Create("E:\\gui_down\\g1.txt");
            //二进制序列化,目的是将内存中的内容存入本地
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(fs,at);
            fs.Close();
        }

        private void button11_Click(object sender, EventArgs e)
        {
            FileStream fs = File.Open("E:\\gui_down\\g1.txt", FileMode.Open);
            BinaryFormatter bin = new BinaryFormatter();
            ArrayList list;
            list = (ArrayList)bin.Deserialize(fs);
            fs.Close();
            MessageBox.Show(list.Count.ToString());
            MessageBox.Show(list[2].ToString());
        }

        private void button12_Click(object sender, EventArgs e)
        {
            FileStream fs = File.Create("E:\\gui_down\\g2.xml");
            ArrayList at = new ArrayList();
            for (int i = 0; i < 100; i++)
                at.Add(i);
            System.Runtime.Serialization.Formatters.Soap.SoapFormatter soap = new SoapFormatter();//soap序列化
            soap.Serialize(fs, at);
            fs.Close();
        }

        private void button13_Click(object sender, EventArgs e)
        {
            FileStream fs = File.Create("E:\\gui_down\\g3.xml");
            ArrayList at = new ArrayList();
            for (int i = 0; i < 100; i++)
                at.Add(i);
            System.Xml.Serialization.XmlSerializer xml= new XmlSerializer(typeof(ArrayList));//xml序列化
            xml.Serialize(fs,at);
            fs.Close();
        }

        private void button14_Click(object sender, EventArgs e)
        {
            Employee emp = new Employee("gui", 21, 20000);
            FileStream fs = File.Create("E:\\gui_down\\g4.xml");
            SoapFormatter soap = new SoapFormatter();//必须对指定可序列化的对象而言,若是自己创建的类,可以在类开头申明为可序列化
            soap.Serialize(fs, emp);//序列化只对指定的类的数据成员进行
            fs.Close();
        }

        private void button15_Click(object sender, EventArgs e)
        {
            Employee emp;
            FileStream fs = File.Open("E:\\gui_down\\g4.xml", FileMode.Open);
            SoapFormatter soap = new SoapFormatter();
            emp = (Employee)soap.Deserialize(fs);//反序列化 除了要知道文件路径以外,还要知道被序列化的类型(Employee)
            fs.Close();
            MessageBox.Show(emp.Name);
            //对于soap序列化的问题,可以在设计方法上用接口实现仅被序列化的类,使得引用中其他的类不公开
        }
[SerializableAttribute]//可序列化
    public class Employee
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int age;
        [NonSerialized]//该数据成员部能被序列化
        private int saray;
        public Employee(string n,int a,int s)
        {
         this.name =n;
            this.age = a;
            this.saray = s;
        }

    }
分享到:
评论

相关推荐

    序列化和反序列化(文本加密成二进制文件)

    4. **数据处理**:一旦数据被成功反序列化,就可以对其进行操作或使用。 在`ExtendDemo`这个示例中,可能包含了实现这些步骤的代码示例,例如定义了自定义的序列化和反序列化函数,以及加密和解密的逻辑。学习这样...

    XML文件序列化与反序列化

    XML文件的序列化与反序列化是软件开发中常见的数据操作技术,特别是在数据交换、存储和网络通信方面。了解并熟练掌握这项技能对于提升软件系统的灵活性和可维护性至关重要。在实际应用中,开发者应根据项目需求选择...

    学生管理系统(序列化和反序列化)

    在实际应用中,应确保对序列化数据进行适当的加密和权限控制,以防止未经授权的访问。 7. **扩展性**:如果系统设计得当,添加新的学生属性或实现更复杂的查询功能应该相对容易。这可能涉及到更新学生类的定义,...

    base64序列化字符串

    在给定的压缩包文件中,"DeserializeStr"可能是指一个文件或程序,用于执行Base64字符串的反序列化操作。这个工具或脚本可能接收一个Base64编码的字符串,然后将其解码为原始数据。 总之,Base64序列化字符串是数据...

    c#对象序列化与反序列化实例

    另外,还可以使用.NET Framework提供的`System.Xml.Serialization.XmlSerializer`或`System.Runtime.Serialization.Formatters.Binary.BinaryFormatter`类来执行序列化操作。 ```csharp [Serializable] public ...

    C#序列化学习的源码

    XML序列化将对象转换为XML文档,易于阅读和理解,适合数据交换。`XmlSerializer`类用于实现XML序列化,允许我们控制哪些字段和属性被序列化,以及它们在XML中的表示方式。源码可能包含自定义XML序列化特性的示例。 ...

    C# 文件操作二进制序列化

    不要对包含敏感数据的对象进行序列化,除非有适当的加密措施。 4. **其他序列化选项**:除了二进制序列化,C#还提供了XML、JSON等多种序列化方式,它们各有优缺点,可以根据具体需求选择合适的序列化技术。 通过...

    VC序列化-存储文件方法

    "VC序列化-存储文件方法"主要涉及的是如何在Visual C++中利用串行化机制将对象的数据写入文件,并在需要时读取出来恢复对象状态。 1. **什么是序列化**:序列化是将对象的状态转换为字节流的过程,这个字节流可以是...

    C#flash序列化案例

    可能需要加密序列化的数据,防止中间人攻击。此外,优化序列化和反序列化过程对于性能影响也需注意,避免不必要的资源消耗。 6. **跨平台应用开发**: C#与Flash的序列化交互常用于开发跨平台应用程序,例如桌面应用...

    WM实现序列化所需库文件

    这个库文件很可能是提供了一组接口或实现,用于支持自定义的序列化和反序列化操作。ISerial这个名字暗示它包含了一个名为ISerial的接口,开发者可以实现这个接口来定制自己的序列化逻辑。这对于处理特定数据类型...

    asp.net购物车类的反序列化

    在ASP.NET开发中,...综上所述,`shopEncode.cs`文件很可能是实现购物车类的序列化、反序列化以及可能的加密解密功能的关键代码。这个类在实际项目中扮演着重要的角色,确保了用户购物车信息的安全存储和高效恢复。

    c# 序列化和反序列化

    因此,需要确保数据在序列化前进行适当加密,并遵循数据保护法规。 4. **性能优化**:对于大型对象或频繁的序列化操作,优化是必要的。例如,可以考虑使用流式序列化而不是一次性加载整个对象。 5. **自定义序列化...

    序列化和反序列化

    因此,在设计系统时,应考虑对序列化的对象进行适当的数据脱敏或加密处理,以保护信息安全。 在"SerDemo"这个示例中,可能包含了一个或多个关于序列化和反序列化的代码实例,可能涵盖了上述提到的编程语言中的某一...

    序列化与反序列化用友U8所需的XML

    例如,对敏感数据进行加密,优化序列化和反序列化的效率,以及处理可能出现的异常情况。 总之,用友U8的XML序列化和反序列化是将业务对象转换为XML文档并从XML恢复的过程,这一过程涉及到对象的实体类设计、XML注解...

    .Net中的序列化和反序列化详解

    除此之外,序列化对象为内存中的字节流后,还可以对其进行加密和压缩等进一步处理,提供更多的数据操作可能性。 .NET框架提供了多种序列化方式,其中包括二进制序列化和XML及SOAP序列化两种主要方式: 1. 二进制...

    028-精通PHP序列化与反序列化之_道_.pdf

    序列化的数据可以被保存到文件或数据库中,或者通过网络传输。 反序列化则是序列化过程的逆过程,它将存储的字符串重新转换为原始的对象。在PHP中,反序列化函数为unserialize()。通过这个函数,可以根据字符串中...

    序列化保存对象到Cookie中

    在.NET框架中,我们有多种序列化方式,如XML序列化、JSON序列化、二进制序列化等。对于保存到Cookie的情况,通常会选择JSON序列化,因为它生成的数据更小且易于阅读。 **ASP.NET中的Cookie管理**: 在ASP.NET中,`...

    序列化反序列用户名与密码

    在IT行业中,序列化和反序列化是两个关键的概念,特别是在数据存储、网络通信和对象持久化等场景中。在C#编程语言中,这些技术被广泛使用,尤其是在处理用户登录信息时,如用户名和密码的安全存储和传输。本文将详细...

    memcached各种序列化策略之session共享

    每个rar文件对应了不同的序列化策略与Tomcat的整合示例。 5. **优缺点分析**:不同的序列化策略各有优缺点。例如,XStream和Flexjson易用性高,但可能产生较大的序列化数据;而Kryo和Javolution则更注重性能和数据...

    Java序列化与反序列化<转>

    4. **性能考虑**:序列化和反序列化可能消耗一定资源,因此在大量操作时要注意性能优化。 5. **自定义序列化和反序列化**:通过实现`writeObject()`和`readObject()`方法,可以控制序列化和反序列化的行为,例如...

Global site tag (gtag.js) - Google Analytics