• java学习笔记(6)——序列化


    一、序列化与基本类型序列化
    1,将类型int转换为4byte,或将其它数据类型(如long->8byte)的过程,
    即将数据转换为n个byte序列叫序列化(数据->n byte)
    如:0x7fffffff  -> [7f, ff, ff, ff]
    2,反序列化,将n byte转换为一个数据的过程(n byte->数据)
    如:[7f, ff, ff, ff]  ->  0x7fffffff
    3,RandomAccessFile 提供基本类型的读写方法,可以将基本类型数据序列化到文件
    或者将文件内容序列化为数据
    ----------------------------------------------------------------------
    package pack02;


    import java.io.*;


    import com.sun.imageio.spi.RAFImageInputStreamSpi;
    public class Demo {
    public static void main(String[] args){
    //创建目录demo
    File demo = new File("demo");
    if(!demo.exists()){
    demo.mkdir();
    }
    //在demo文件夹中创建raf.dat
    File file = new File(demo,"raf.dat");
    System.out.println(file);
    if(!file.exists()){
    try {
    file.createNewFile();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    //打开这个文件进行随机读写
    try {
    RandomAccessFile raf = new RandomAccessFile(file,"rw");
    //序列化
    int i = 0x7fffffff;
    raf.write(i>>>24);
    raf.write(i>>>16);
    raf.write(i>>>8);
    raf.write(i);
    System.out.println(raf.getFilePointer());

    raf.seek(0);
    int b = raf.read();
    i = i|(b<<24);
    b = raf.read();
    i = i|(b<<16);
    b = raf.read();
    i = i|(b<<8);
    b = raf.read();
    i = i|b;
    System.out.println(Integer.toHexString(i));
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }


    ----------------------------------------------------------------------
  • 相关阅读:
    Ansible facts
    K8S基础概念
    Ansible CMDB
    Docker 核心技术与实现原理
    如何在 Centos7 中使用阿里云的yum源
    一篇文全面了解DevOps:从概念、关键问题、兴起到实现需求
    关于操作stream流
    service not available now, maybe disk full, CL: 0.95 CQ: 0.95 INDEX: 0.95, maybe your broker mach
    AOP的底层实现,动态代理和cglib代理
    模拟浏览器加载静态资源
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469957.html
Copyright © 2020-2023  润新知