昨天说了DataSet的序列化及压缩,今天把解压缩及反序列化的代码写一下:
/// <summary> /// 反序列化压缩的DataSet /// </summary> /// <param name="_filePath"></param> /// <returns></returns> static DataSet DataSetDeserializeDecompress(string _filePath) { FileStream fs = File.OpenRead(_filePath);//打开文件 fs.Position = 0;//设置文件流的位置 GZipStream gzipStream = new GZipStream(fs, CompressionMode.Decompress);//创建解压对象 byte[] buffer = new byte[4096];//定义数据缓冲 int offset = 0;//定义读取位置 MemoryStream ms = new MemoryStream();//定义内存流 while ((offset = gzipStream.Read(buffer, 0, buffer.Length)) != 0) { ms.Write(buffer, 0, offset);//解压后的数据写入内存流 } BinaryFormatter sfFormatter = new BinaryFormatter();//定义BinaryFormatter以反序列化DataSet对象 ms.Position = 0;//设置内存流的位置 DataSet ds; try { ds = (DataSet)sfFormatter.Deserialize(ms);//反序列化 } catch { throw; } finally { ms.Close();//关闭内存流 ms.Dispose();//释放资源 } fs.Close();//关闭文件流 fs.Dispose();//释放资源 gzipStream.Close();//关闭解压缩流 gzipStream.Dispose();//释放资源 return ds; } /// <summary> /// 反序列化未压缩的DataSet /// </summary> /// <param name="_filePath"></param> /// <returns></returns> static DataSet DataSetDeserialize(string _filePath) { FileStream fs = File.OpenRead(_filePath);//打开文件 fs.Position = 0;//设置文件流的位置 BinaryFormatter sfFormatter = new BinaryFormatter();//定义BinaryFormatter以反序列化DataSet对象 DataSet ds; try { ds = (DataSet)sfFormatter.Deserialize(fs);//反序列化 } catch { throw; } finally { fs.Close();//关闭内存流 fs.Dispose();//释放资源 } fs.Close();//关闭文件流 fs.Dispose();//释放资源 return ds; }
您还没有登录,请您登录后再发表评论
这通常通过序列化过程实现。首先,使用`DataSet`的`GetXml()`方法将数据集内容转换为XML字符串,然后将该字符串转换为字节数组。以下代码展示了这一过程: ```csharp DataSet myDataSet = ...; // 初始化DataSet ...
在示例中,可能需要将解压缩的字节数组反序列化回DataSet对象,以便进一步处理。 虽然.NET自带的GZipStream在一定程度上提高了性能,但相对于某些第三方压缩库,它的压缩比例可能不是最优的。如果需要更高的压缩...
在`描述`中提到的`DataSetSurrogate.dll`,这很可能是一个自定义的dll组件,它提供了专门针对DataSet对象的序列化和反序列化的功能,可能还包括压缩和解压缩的实现。通常,这样的组件会封装上述的压缩过程,使开发者...
通信相关 1.C#HttpHelper,Httpwebrequest,请求时无视编码,无视证书,无视Cookie,网页抓取 主要是实现了HTTP协议的GET|POST...27.压缩解压缩 SharpZip 28.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类
28.压缩解压缩 SharpZip 29.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类 30.页面辅助类 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 31.邮件 MailHelper MailPoper MailSender ...
27.压缩解压缩 SharpZip 28.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类 29.页面辅助类 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 30.邮件 MailHelper MailPoper MailSender ...
16.5 加密、解密及解压缩文件 425 0692 加密和解密文件 425 0693 如何使用对称算法加密文件 425 0694 如何使用对称算法解密文件 426 0695 如何使用GZip压缩文件 427 0696 如何使用GZip解压文件 428 0697...
2. **DataSetSurrogate.dll**:这是一个动态链接库(DLL),可能包含了一种数据集的序列化代理,用于高效地序列化和反序列化.NET的DataSet对象,这对于传递大数据量或者复杂结构的数据非常有用,特别是在WebService...
11. **文件和流操作**:可能包括读写文件、压缩解压缩、序列化和反序列化对象等,这些都是日常开发中常见的任务。 通过这些范例,开发者不仅可以掌握C#语言的基本用法,还能深入理解.NET Framework提供的各种服务,...
C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 <br>1.1 Visual Studio开发环境安装与配置 2 <br>0001 安装Visual Studio 2005开发环境须知 2 <br>0002 配置合适的Visual Studio 2005...
相关推荐
这通常通过序列化过程实现。首先,使用`DataSet`的`GetXml()`方法将数据集内容转换为XML字符串,然后将该字符串转换为字节数组。以下代码展示了这一过程: ```csharp DataSet myDataSet = ...; // 初始化DataSet ...
在示例中,可能需要将解压缩的字节数组反序列化回DataSet对象,以便进一步处理。 虽然.NET自带的GZipStream在一定程度上提高了性能,但相对于某些第三方压缩库,它的压缩比例可能不是最优的。如果需要更高的压缩...
在`描述`中提到的`DataSetSurrogate.dll`,这很可能是一个自定义的dll组件,它提供了专门针对DataSet对象的序列化和反序列化的功能,可能还包括压缩和解压缩的实现。通常,这样的组件会封装上述的压缩过程,使开发者...
通信相关 1.C#HttpHelper,Httpwebrequest,请求时无视编码,无视证书,无视Cookie,网页抓取 主要是实现了HTTP协议的GET|POST...27.压缩解压缩 SharpZip 28.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类
28.压缩解压缩 SharpZip 29.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类 30.页面辅助类 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 31.邮件 MailHelper MailPoper MailSender ...
27.压缩解压缩 SharpZip 28.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类 29.页面辅助类 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 30.邮件 MailHelper MailPoper MailSender ...
27.压缩解压缩 SharpZip 28.验证码 YZMHelper Captcha 验证码类,一个很个性的验证码类 29.页面辅助类 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 30.邮件 MailHelper MailPoper MailSender ...
16.5 加密、解密及解压缩文件 425 0692 加密和解密文件 425 0693 如何使用对称算法加密文件 425 0694 如何使用对称算法解密文件 426 0695 如何使用GZip压缩文件 427 0696 如何使用GZip解压文件 428 0697...
2. **DataSetSurrogate.dll**:这是一个动态链接库(DLL),可能包含了一种数据集的序列化代理,用于高效地序列化和反序列化.NET的DataSet对象,这对于传递大数据量或者复杂结构的数据非常有用,特别是在WebService...
11. **文件和流操作**:可能包括读写文件、压缩解压缩、序列化和反序列化对象等,这些都是日常开发中常见的任务。 通过这些范例,开发者不仅可以掌握C#语言的基本用法,还能深入理解.NET Framework提供的各种服务,...
C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 <br>1.1 Visual Studio开发环境安装与配置 2 <br>0001 安装Visual Studio 2005开发环境须知 2 <br>0002 配置合适的Visual Studio 2005...