1. 程式人生 > 實用技巧 >Protobuf物件寫入檔案與從檔案讀取的工具

Protobuf物件寫入檔案與從檔案讀取的工具

前提需要安裝Protobuf。

工具程式碼:

 1 using System;
 2 using System.IO;
 3 
 4 public class ProtobufTool
 5 {
 6     #region Protobuff序列化
 7 
 8     public static int SerializeProtobuf(object obj, string filePath)
 9     {
10         using (MemoryStream ms = new MemoryStream())
11         {
12             ms.Seek(0
, SeekOrigin.Begin); 13 ms.SetLength(0); 14 //TODO需要安裝ProtoBuf 15 //ProtoBuf.Serializer.Serialize(ms, obj); 16 ms.Seek(0, SeekOrigin.Begin); 17 int totalDataLen = (int)ms.Length; 18 if (totalDataLen > 0) 19 { 20 using
(FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) 21 { 22 fileStream.Write(ms.GetBuffer(), 0, totalDataLen); 23 } 24 } 25 } 26 return 0; 27 } 28 29 public static object DeSerializeProtobuf(string
filePath, Type type) 30 { 31 using (FileStream fileStream = File.Open(filePath, FileMode.Open, FileAccess.Read)) 32 { 33 if (null != fileStream) 34 { 35 fileStream.Seek(0, SeekOrigin.Begin); 36 using (MemoryStream ms = new MemoryStream()) 37 { 38 ms.SetLength(fileStream.Length); 39 fileStream.Read(ms.GetBuffer(), 0, (int)fileStream.Length); 40 //TODO需要安裝ProtoBuf 41 object obj = null;// ProtoBuf.Serializer.DeSerialize(type, ms); 42 ms.Flush(); 43 return obj; 44 } 45 } 46 } 47 return null; 48 } 49 50 #endregion 51 }