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

所属分类: 软件编程 / java 阅读数: 101
收藏 0 赞 0 分享

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实现一个简单的文件上传案例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解在spring中使用JdbcTemplate操作数据库的几种方式

这篇文章主要介绍了详解在spring中使用JdbcTemplate操作数据库的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

java中的switch case语句使用详解

这篇文章主要介绍了java中的switch case语句使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

深入理解Java 线程池

这篇文章主要介绍了Java 线程池的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

详解mybatis #{}和${}的区别、传参、基本语法

这篇文章主要介绍了mybatis #{}和${}的区别、传参、基本语法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

MyBatis 中 ${}和 #{}的正确使用方法(千万不要乱用)

这篇文章主要介绍了MyBatis 中 ${}和 #{}的正确使用方法,本文给大家提到了MyBatis 中 ${}和 #{}的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Mybatis中的 ${} 和 #{}区别与用法

这篇文章主要介绍了Mybatis中的 ${} 和 #{}区别与用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Maven安装过程图文详解

这篇文章主要介绍了Maven安装过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

SpringBoot登录拦截配置详解(实测可用)

这篇文章主要介绍了SpringBoot登录拦截配置详解(实测可用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JAVA 内存溢出案例汇总

这篇文章主要介绍了JAVA 内存溢出案例的汇总,文中讲解非常细致,帮助各位工作学习时避免内存溢出,感兴趣的朋友可以了解下
收藏 0 赞 0 分享
查看更多