TFileTransport是文件形式讀寫的Transport實現
內部封裝了RandomAccessFile的文件,目前java版本只支持讀read操做,不支持write
文件分爲分爲三層chunk,event和具體的數據,
每1610241024byte的數據爲一個chunk,一個chunk中又能夠分爲多個event,每一個event的頭4個byte是小端表示(即高位在後,低位在前)的當前event數據的大小,在調用read的時候。底層使用的RandomAccessFile也能夠快速根據Chunk進行跳轉讀到對應數據。
TFileTransport主要用於讀取文件做爲thrift輸入的狀況。java
@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); }