对象序列化和反序列化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象序列化和反序列化相关的知识,希望对你有一定的参考价值。
C#提供三种序列化的方法,与此有关的三个类分别是:BinarySerialize、SoapSerialize、XmlSerialize
以二进制的序列化和反序列化为例,先创建一个实体类Product。
View Code
重新ToString方法以便打印实体。
给实体赋值,在进行的序列化和反序列化之前进行都进行文件的压缩与解压,用的是GZipStream
List<Product> productList = new List<Product> { new Product(1, "orange", 1.0, "sales"), new Product(2, "Apple", 2.0, "cheap") }; foreach(Product product in productList) { Console.WriteLine(product); } Console.WriteLine("Please select your file"); FileStream fs = new FileStream("Product.ini", FileMode.Create, FileAccess.ReadWrite); GZipStream gzCompressed = new GZipStream(fs, CompressionMode.Compress); try { IFormatter serialize = new BinaryFormatter(); serialize.Serialize(gzCompressed, productList); gzCompressed.Close(); FileStream fsRead = new FileStream("Product.ini", FileMode.Open, FileAccess.Read); GZipStream gzDecompressed = new GZipStream(fsRead, CompressionMode.Decompress); List<Product> deProductList = serialize.Deserialize(gzDecompressed) as List<Product>; gzDecompressed.Close(); foreach (Product product in deProductList) { Console.WriteLine(product); } } catch (SerializationException se) { Console.WriteLine(se.Message); } catch(IOException io) { Console.WriteLine(io.ToString()); }
以上是关于对象序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章
将 Objective-C 对象序列化和反序列化为 JSON
com.fasterxml.jackson包序列化json对象和反序列化