记一个简单的序列化

Posted geek-sq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一个简单的序列化相关的知识,希望对你有一定的参考价值。

package com.atguigu.mapreduce.flowsum;

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

import org.apache.hadoop.io.Writable;

public class FlowBean implements Writable{

private long upFlow; // 上行流量
private long downFlow; // 下行流量
private long sumFlow; // 总流量

// 必须要有空参构造,为了后续反射用
public FlowBean() {
super();
}

public FlowBean(long upFlow, long downFlow) {
super();
this.upFlow = upFlow;
this.downFlow = downFlow;
this.sumFlow = upFlow + downFlow;
}

public void set(long upFlow, long downFlow){
this.upFlow = upFlow;
this.downFlow = downFlow;
this.sumFlow = upFlow + downFlow;
}

// 序列化方法
@Override
public void write(DataOutput out) throws IOException {
out.writeLong(upFlow);
out.writeLong(downFlow);
out.writeLong(sumFlow);
}

// 反序列化方法
// 注意:序列化顺序和反序列化顺序必须一致
@Override
public void readFields(DataInput in) throws IOException {
this.upFlow = in.readLong();
this.downFlow = in.readLong();
this.sumFlow = in.readLong();
}


@Override
public String toString() {
return upFlow + "\t" + downFlow + "\t" + sumFlow ;
}

public long getUpFlow() {
return upFlow;
}

public void setUpFlow(long upFlow) {
this.upFlow = upFlow;
}

public long getDownFlow() {
return downFlow;
}

public void setDownFlow(long downFlow) {
this.downFlow = downFlow;
}

public long getSumFlow() {
return sumFlow;
}

public void setSumFlow(long sumFlow) {
this.sumFlow = sumFlow;
}
}

以上是关于记一个简单的序列化的主要内容,如果未能解决你的问题,请参考以下文章

架构师养成记--31.Redis的String类型

记一个简单的sql查询

XSY3156简单计数II 容斥 DP

[CSP-S模拟测试]:简单的区间(分治)

Android菜鸟成长记12 -- ORMLite的简单使用

前端随心记---------简单.可扩展的状态管理工具MobX