package com.coding.basic.homework_03.download.impl; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import com.coding.basic.homework_03.download.api.Connection; public class ConnectionImpl implements Connection{ // public RandomAccessFile raf = null; public HttpURLConnection httpUrl = null; public URL Url = null; // public BufferedInputStream bis = null; // FileInputStream fis = null; InputStream is = null; public ConnectionImpl(String url) throws IOException{ Url = new URL(url); httpUrl = (HttpURLConnection) Url.openConnection(); httpUrl.connect(); is = httpUrl.getInputStream(); // fis = (FileInputStream) httpUrl.getInputStream(); // bis = new BufferedInputStream(httpUrl.getInputStream()); // raf = new RandomAccessFile(url, "r"); } @Override public byte[] read(int startPos, int endPos) throws IOException { int length = endPos - startPos + 1; byte[] result = new byte[length]; int num = 0; if(startPos != 0){ is.skip(startPos); } num = (int)is.read(result); // System.out.println("length : " + length); // System.out.println("num : " + num); // System.out.println(startPos +"....读到了...."+endPos); // // System.out.println(Integer.MAX_VALUE); // System.out.println("num:" + num); // fis.skip(startPos); // fis.read(result, startPos, length); // bis.read(result, startPos, length); // raf.seek(startPos); // raf.read(result); return result; } @Override public int getContentLength() throws IOException { int num = 0; return httpUrl.getContentLength(); // return (int) raf.length(); } @Override public void close() throws IOException { // if(raf != null){ // raf.close(); // } // if(bis != null){ // bis.close(); // } if(is != null){ is.close(); } } }