package com.coderising.download.impl; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.util.Arrays; import com.coderising.download.api.Connection; public class ConnectionImpl implements Connection{ HttpURLConnection urlConnection; public HttpURLConnection getUrlConnection() { return urlConnection; } public void setUrlConnection(HttpURLConnection urlConnection) { this.urlConnection = urlConnection; } @Override public byte[] read(int startPos, int endPos) throws IOException { byte[] buffer = new byte[endPos-startPos+1]; int count=0; urlConnection.setRequestProperty("Range", "bytes=" + startPos + "-" + endPos); InputStream ips=urlConnection.getInputStream(); //ips.skip(startPos); while(count<buffer.length-1){ int len=ips.read(buffer, count, endPos-startPos-count); if(len==-1){ break; } count=count+len; } return buffer; } @Override public int getContentLength() { return urlConnection.getContentLength(); } @Override public void close() { urlConnection.disconnect(); } }