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);
    }
}
相关推荐
瑞华丽PLM7 小时前
传统研发协同低效痛点待解,PLM 系统数字化选型助力研发效率提升与转型
大数据·plm·国产plm·瑞华丽plm·瑞华丽
乐迪信息7 小时前
乐迪信息:实时预警,秒级响应:船舶AI异常行为检测算法
大数据·人工智能·算法·安全·目标跟踪
红色星际7 小时前
进军具身机器人和Robotaxi的智驾公司
大数据·人工智能·机器人
Bruce_Liuxiaowei7 小时前
《轻量化制播系统技术应用指南(2026版)》解读:县级融媒体的“减负增效“新路径
大数据·人工智能·媒体
2601_956139427 小时前
文旅行业品牌全案公司哪家强
大数据·人工智能·python
生活观察站7 小时前
中文在线亮相横琴—澳门国际数字艺术博览会国际数字创意论坛:AI漫剧打开内容创作新想象
大数据·人工智能
地球资源数据云8 小时前
1900-2023年中国物种分布点位矢量数据集
大数据·数据结构·数据库·数据仓库·人工智能
菜鸟小码8 小时前
MapReduce 真正的核心之Shuffle 阶段深度解析:分区、排序、合并与归约
大数据·mapreduce
Vwms8 小时前
2026 医药制造 WMS 选型指南:GMP 合规仓储管理系统怎么选
大数据·wms·wms选型
精益数智工坊8 小时前
拆解制造业仓库物料管理流程:如何通过标准化仓库物料管理流程解决账实不符难题
大数据·前端·数据库·人工智能·精益工程