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);
    }
}
相关推荐
EasyDSS15 分钟前
安防监控视频管理平台EasyCVR助力建筑工地施工4G/5G远程视频监管方案
大数据·网络·网络协议·音视频
F36_9_1 小时前
质量问题频发,如何提升源头把控
大数据·运维
2401_890665861 小时前
免费送源码:Java+ssm+MySQL 基于PHP在线考试系统的设计与实现 计算机毕业设计原创定制
java·hadoop·spring boot·python·mysql·spring cloud·php
lqg_zone1 小时前
Elasticvue-轻量级Elasticsearch可视化管理工具
大数据·elasticsearch·搜索引擎
帝锦_li2 小时前
微服务1--服务架构
分布式·微服务·系统架构
youka1502 小时前
大数据学习栈记——MongoDB编程
大数据·学习·mongodb
星辰瑞云2 小时前
Spark-SQL核心编程2
大数据·分布式·spark
2401_824256862 小时前
Spark-SQL(二)
大数据·sql·spark
ErizJ3 小时前
Golang|Kafka在秒杀场景中的应用
开发语言·分布式·后端·golang·kafka
M-bao3 小时前
RabbitMQ demo案例
分布式·rabbitmq