Hadoop的序列化和反序列化

复制代码
//1
package com.example.sei;


import org.apache.hadoop.io.Writable;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

//学生类,姓名,年龄
//支持hadoop的序列化
//1.要实现Writable接口
//2.补充一个空参构造
public class StudentH implements Writable {
     String name;
     int age;
     //空参构造
    public StudentH() {}
    public StudentH(String name, int age) {
        this.name = name;
        this.age = age;

    }
    //write:在序列化的时候,调用,把对象写到文件
    @Override
    public void write(DataOutput dataOutput) throws IOException {
        //dataOutput.writeUTF(字段);
        dataOutput.writeUTF(name);
        dataOutput.writeInt(age);
    }
    //readFields:反序列化的时候,调用,从文件中读出内容,还原这个对象
    //字段顺序要与write中的顺序一致
    @Override
    public void readFields(DataInput dataInput) throws IOException {
        //字段=dataInput.read();
        name=dataInput.readUTF();
        age=dataInput.readInt();
    }
}

//2

复制代码
package com.example.sei;

import java.io.*;

public class TestStudentH {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //实例化student对象
//        StudentH student = new StudentH("张三", 18);
//        System.out.println(student.name+ " " + student.age);
//
//
//
//        //hadoop序列化:把对象保存到第一个文件中
//        DataOutputStream dos = new DataOutputStream(new FileOutputStream("student_hadoop.ser"));
//        student.write(dos);

        //hadoop反序列化:从第一个文件中读取对象
        DataInputStream dis = new DataInputStream(new FileInputStream("student_hadoop.ser"));
        StudentH student1 = new StudentH();
        student1.readFields(dis);
        System.out.println(student1.name+ " " + student1.age);
    }
}
相关推荐
萧鼎44 分钟前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
媒体人8881 小时前
GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑
大数据·人工智能
最初的↘那颗心2 小时前
Flink Stream API 源码走读 - print()
java·大数据·hadoop·flink·实时计算
君不见,青丝成雪3 小时前
hadoop技术栈(九)Hbase替代方案
大数据·hadoop·hbase
晴天彩虹雨3 小时前
存算分离与云原生:数据平台的新基石
大数据·hadoop·云原生·spark
朗迪锋3 小时前
数字孪生 :提高制造生产力的智能方法
大数据·人工智能·制造
卡拉叽里呱啦4 小时前
缓存-变更事件捕捉、更新策略、本地缓存和热key问题
分布式·后端·缓存
杨荧4 小时前
基于Python的宠物服务管理系统 Python+Django+Vue.js
大数据·前端·vue.js·爬虫·python·信息可视化
健康平安的活着4 小时前
es7.x es的高亮与solr高亮查询的对比&对比说明
大数据·elasticsearch·solr
缘华工业智维5 小时前
CNN 在故障诊断中的应用:原理、案例与优势
大数据·运维·cnn