person類的代碼:
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供興和網(wǎng)站建設(shè)、興和做網(wǎng)站、興和網(wǎng)站設(shè)計(jì)、興和網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、興和企業(yè)網(wǎng)站模板建站服務(wù),10年興和做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
public class Person implements Writable {
//相當(dāng)于String類型
private Text name;
public Text getName() {
return name;
}
public void setName(Text name) {
this.name = name;
}
public IntWritable getAge() {
return age;
}
public void setAge(IntWritable age) {
this.age = age;
}
public BooleanWritable getMale() {
return male;
}
public void setMale(BooleanWritable male) {
this.male = male;
}
private IntWritable age;
private BooleanWritable male;
//序列化
public void write(DataOutput out) throws IOException{
name.write(out);
age.write(out);
male.write(out);
}
//反序列化
public void readFields(DataInput in) throws IOException{
name = new Text();
age=new IntWritable();
male=new BooleanWritable();
name.readFields(in);
age.readFields(in);
male.readFields(in);
}
}
測(cè)試類的代碼:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.junit.Test;
public class TestPerson {
@Test
public void testSeria() throws Exception{
//new person
Person p = new Person();
p.setName(new Text("tomas"));
p.setAge(new IntWritable(12));
p.setMale(new BooleanWritable(false));
//序列化
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dataOut = new DataOutputStream(baos);
p.write(dataOut);
dataOut.close();
//反序列化
Person newPerson = new Person();
newPerson.readFields(new DataInputStream(new ByteArrayInputStream(baos.toByteArray())));
System.out.println(newPerson.getName());
System.out.println(newPerson.getAge().get());
}
}