Java,C#使用二进制序列化、反序列化操作数据

 更新时间:2014年10月29日 14:55:56   投稿:hebedich  
这篇文章主要介绍了Java,C#使用二进制序列化、反序列化操作数据的相关资料,需要的朋友可以参考下

java使用二进制序列化、反序列化的操作首先,要引入java.io下面相关包,或者直接写import java.io.*;
下面,为了书写操作的方便,采用复制文件,和throws声明异常的方式来写

复制代码 代码如下:

public void test6() throws IOException {
byte[] b = new byte[1024];//定义字节数组,缓冲

FileInputStream in = new FileInputStream("E:\\logo.gif");//创建输入流对象

FileOutputStream out = new FileOutputStream("E:\\My.gif");//创建输出流对象

DataInputStream input = new DataInputStream(in);//创建输入二进制流

DataOutputStream dout = new DataOutputStream(out);//创建输出二进制流

int num = input.read(b);// 读取二进制文件到b中
while (num != -1) {
dout.write(b, 0, num);// 将读取到的数组写入到输出流
num = input.read(b);// 重新再次读取
}
// 按顺序关闭所有流对象
input.close();
dout.close();
in.close();
out.close();
System.out.println("复制成功!");
}

初略代码,仅供参考!
C#使用二进制序列化、反序列化的操作首先,引入命名空间using System.Runtime.Serialization.Formatters.Binary;用以操作序列化和反序列化
还有,在牵涉到序列化的自定义类的类上方加上一个指示类[Serializable]
示例:
[Serializable]

复制代码 代码如下:

public class PlayManager
    {
/// <summary>
        /// 序列化保存数据
        /// </summary>
        public void Save()
        {
        FileStream fs = null;
            try
            {
                fs = new FileStream("保存文件的路径", FileMode.Create);
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(fs, 要保存的对象);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                fs.Close();
            }
/// <summary>
        /// 加载序列化信息
        /// </summary>
        public void Load()
        {
FileStream fs = null;
                try
                {
                    fs = new FileStream("文件路径", FileMode.OpenOrCreate);
                    BinaryFormatter bf = new BinaryFormatter();
                    对象接收= (对象的类型)bf.Deserialize(fs);   //强制类型转换
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    fs.Close();
                }  

这就是在C#中序列化文件的使用,其实这个挺简单的,如果不加try-catch-finally也就四句代码,
过往的朋友们你们看明白了吗?不明白的还可以提问哦!

相关文章

  • Java如何实现保证线程安全

    Java如何实现保证线程安全

    这篇文章主要介绍了Java如何实现保证线程安全问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • SpringAop源码及调用过程概述

    SpringAop源码及调用过程概述

    这篇文章主要介绍了SpringAop源码及调用过程概述,Spring AOP(面向切面编程)是Spring框架的一个重要特性,它提供了一种在程序运行期间动态地将额外的行为织入到代码中的方式,需要的朋友可以参考下
    2023-10-10
  • WebUploader+SpringMVC实现文件上传功能

    WebUploader+SpringMVC实现文件上传功能

    WebUploader是由Baidu团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。这篇文章主要介绍了WebUploader+SpringMVC实现文件上传功能,需要的朋友可以参考下
    2017-06-06
  • Java接口的作用以及使用说明

    Java接口的作用以及使用说明

    接口是一种规范,定义了一组方法的原型,但没有实现,类通过实现接口来实现接口中的抽象方法,接口可以提供规范性、扩展性和可插入性,在Java中,接口可以用来声明一个变量,实现接口的类必须实现接口中定义的所有方法,接口提供了一种机制
    2024-11-11
  • Javafx简单实现【我的电脑资源管理器】效果

    Javafx简单实现【我的电脑资源管理器】效果

    这篇文章主要介绍了Javafx简单实现【我的电脑资源管理器】效果,涉及Javafx操作系统文件模拟资源管理器的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • Java中使用异或语句实现两个变量的互换

    Java中使用异或语句实现两个变量的互换

    这篇文章主要介绍了Java中使用异或语句实现两个变量的互换,本文直接给出代码实例以及运行结果,需要的朋友可以参考下
    2015-06-06
  • Java多线程编程实战之模拟大量数据同步

    Java多线程编程实战之模拟大量数据同步

    这篇文章主要介绍了Java多线程编程实战之模拟大量数据同步,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • Sharding-Jdbc如何配置主从读写分离模式

    Sharding-Jdbc如何配置主从读写分离模式

    文章介绍了如何使用Sharding-JDBC实现MySQL的读写分离,通过配置主从数据源和读写分离策略,可以在项目中实现高效的数据库读写操作,同时,文章还提到解决MySQL连接异常的一个常见方法
    2025-03-03
  • 从JVM分析Java的类的加载和卸载机制

    从JVM分析Java的类的加载和卸载机制

    这篇文章主要介绍了从JVM分析Java的类的加载和卸载机制,讲解了Java类的声明周期,需要的朋友可以参考下
    2015-11-11
  • java如何实现抽取json文件指定字段值

    java如何实现抽取json文件指定字段值

    这篇文章主要介绍了java如何实现抽取json文件指定字段值,具有很好的参考价值,希望对大家有所帮助。
    2022-06-06

最新评论