package com.github.mrwengq.tid; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.concurrent.CyclicBarrier; import com.github.mrwengq.tid.api.Connection; public class DownloadThread extends Thread{ Connection conn; int startPos; int endPos; String fileName; CyclicBarrier cb; public DownloadThread( Connection conn, String fileName ,int startPos, int endPos,CyclicBarrier cb){ this.conn = conn; this.fileName = fileName; this.startPos = startPos; this.endPos = endPos; this.cb = cb; } public void run(){ byte[] b = null; try { b = conn.read(startPos,endPos); RandomAccessFile raf = new RandomAccessFile(fileName, "rw"); raf.seek(startPos); raf.write(b); raf.close(); conn.close(); cb.await(); } catch (Exception e) { e.printStackTrace(); } } }