TFileTransport是文件形式读写的Transport实现
内部封装了RandomAccessFile的文件,目前java版本只支持读read操作,不支持write
文件分为分为三层chunk,event和具体的数据,
每1610241024byte的数据为一个chunk,一个chunk中又可以分为多个event,每个event的头4个byte是小端表示(即高位在后,低位在前)的当前event数据的大小,在调用read的时候。底层使用的RandomAccessFile也可以快速根据Chunk进行跳转读到对应数据。
TFileTransport主要用于读取文件作为thrift输入的情况。
@Test
public void testFileTransport() throws IOException, TTransportException {
int num_chunks = 10;
TFileTransport t = new TFileTransport("d://file", true);
t.open();
System.out.println("NumChunks=" + t.getNumChunks());
byte[] buf = new byte[2];
t.seekToChunk(0);
t.read(buf, 0, 2);
}