当前位置: 首页 > 编程笔记 >

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

龚安民
2023-03-14
本文向大家介绍Java,C#使用二进制序列化、反序列化操作数据,包括了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也就四句代码,
过往的朋友们你们看明白了吗?不明白的还可以提问哦!

 类似资料:
  • 本文向大家介绍C#使用Json.Net进行序列化和反序列化及定制化,包括了C#使用Json.Net进行序列化和反序列化及定制化的使用技巧和注意事项,需要的朋友参考一下 序列化(Serialize)是将对象转换成字节流,并将其用于存储或传输的过程,主要用途是保存对象的状态,以便在需要时重新创建该对象;反序列化(Deserialize)则是将上面的字节流转换为相应对象的过程;在.Net阵营中,Json

  • 本文向大家介绍什么是C#中的二进制序列化和反序列化?如何在C#中实现二进制序列化?,包括了什么是C#中的二进制序列化和反序列化?如何在C#中实现二进制序列化?的使用技巧和注意事项,需要的朋友参考一下 将对象转换为非人类可读格式的二进制格式称为二进制序列化。 将二进制格式转换回人类可读格式称为反序列化? 为了在C#中实现二进制序列化,我们必须使用库System.Runtime.Serializati

  • 问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并

  • 主要内容:1 Java序列化和反序列化,2 Java序列化的优点,3 java.io.Serializable接口,4 Java ObjectOutputStream,5 Java ObjectInputStream,6 Java序列化的例子,7 Java反序列化的例子1 Java序列化和反序列化 Java中的序列化是一种将对象状态写入字节流的机制。它主要用于Hibernate,RMI,JPA,EJB和JMS技术。 序列化的反向操作称为反序列化,其中字节流被转换为对象。序列化和反序列化过程与平台

  • 上一小节我们学习了 Java 的输入输出流,有了这些前置知识点,我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用,Serializable 接口以及 Externalizable 接口,常用序列化工具介绍等内容。 1. 序列化与反序列化 序列化在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式,以留待后续在相同或另一台计算机环境中,能

  • 本文向大家介绍详解PHP中的序列化、反序列化操作,包括了详解PHP中的序列化、反序列化操作的使用技巧和注意事项,需要的朋友参考一下 数据(变量)序列化(持久化) 将一个变量的数据"转换为"字符串,但并不是类型转换,目的是将该字符串存储在本地。相反的行为成为反序列化。 流程: 具体实例: 1.在xxx1.php中进行序列化操作 2.在xxx2.php中进行反序列化操作 以上就是本文的全部内容,希望对