public class HttpDownLoadFile {
public static void main(String[] args) throws IOException {
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://localhost/lizicheng.zip");
HttpParams httpParams = httpGet.getParams();
File out = new File("lizicheng2.zip");
if (!out.exists()) {
out.createNewFile();
}
RandomAccessFile rf = null;
rf = new RandomAccessFile(out, "rws");
long len = rf.length();
System.out.println("FileLength=" + rf.length());
rf.close();
FileOutputStream fo = new FileOutputStream(out, true);
WritableByteChannel fc = Channels.newChannel(fo);
ByteBuffer bf = ByteBuffer.allocate(1024 * 100);
httpGet.setHeader("RANGE", "bytes=" + len + "-");
try {
HttpResponse r = defaultHttpClient.execute(httpGet);
int code = r.getStatusLine().getStatusCode();
Header[] headers = r.getAllHeaders();
if (code == 200 || code == 206) {
InputStream in = r.getEntity().getContent();
BufferedInputStream bin = new BufferedInputStream(in);
ReadableByteChannel inc = Channels.newChannel(bin);
int i = 1;
while (inc.read(bf) != -1) {
bf.flip();
fc.write(bf);
bf.compact();
if (i++ > 20) {
break;
}
}
bf.flip();
while (bf.hasRemaining())
fc.write(bf);
bin.close();
}
fc.close();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java nio 断点续传
最新推荐文章于 2023-05-12 17:13:41 发布