定义.thrift
文件
struct Pair {
1: required string key;
2: required string value;
3: required i16 test1;
4: optional i32 test2;
5: optional i64 test3;
6: optional i32 test4;
7: optional i32 test5;
67: optional i32 test67;
}
生成代码
thrift -r --gen java java/com/zjw/thrift/helloworld/hello.thrift
Java
代码
package com.zjw.thrift.helloworld;
import com.zjw.thrift.helloworld.gen.Pair;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.TIOStreamTransport;
import org.apache.thrift.transport.TTransport;
public class ThriftReadWriteTest {
public static void main(String[] args) throws TException {
Pair pair = new Pair();
pair.setKey("key1");
pair.setValue("value1");
pair.setTest1((short) 12);
pair.setTest2(24);
pair.setTest5(124);
ByteArrayOutputStream out = new ByteArrayOutputStream();
TTransport transport = new TIOStreamTransport(out);
TBinaryProtocol tp = new TBinaryProtocol(transport);
pair.write(tp);
byte[] bytes = out.toByteArray();
Pair pair2 = new Pair();
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
TTransport transport2 = new TIOStreamTransport(bis);
TBinaryProtocol tp2 = new TBinaryProtocol(transport2);
tp2.readStructBegin();
pair2.read(tp2);
System.out.println(pair2);
}
}