opiuytr1 发表于 2017-1-4 10:04:53

Hadoop学习--int类型的序列化和反序列化--day07

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.ShortWritable;
import org.junit.Test;

public class TestWritable {
        /*
       * test writable
       */
        @Test
        public void test1() throws Exception {
                IntWritable age = new IntWritable();
                age.set(163);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                DataOutputStream dataOut = new DataOutputStream(baos);
                // 序列化
                age.write(dataOut);
                dataOut.close();
                byte[] bts = baos.toByteArray();
                for (byte by : bts) {
                        System.out.println(by);
                }
               System.out.println(bts.toString());
                // 反序列化
                IntWritable age2 = new IntWritable();
                age2.readFields(new DataInputStream(new ByteArrayInputStream(baos
                                .toByteArray())));
                System.out.println(age2.get());

                ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
                DataInputStream dis = new DataInputStream(bais);
                System.out.println(dis.readInt());

//                //测试用short类型方式的读取
//                ShortWritable short1 = new ShortWritable();
//                short1.readFields(dis);
//                System.out.println(short1.get());
//                ShortWritable short2 = new ShortWritable();
//                short2.readFields(dis);
//                System.out.println(short2.get());

        }
}

页: [1]
查看完整版本: Hadoop学习--int类型的序列化和反序列化--day07