-
http方式实现图片上传查看全部
-
多线程下载时重要的算法如下: 每个线程下载的长度计算,参照截图查看全部
-
多线程下载用到的知识点查看全部
-
Runnable代码写完后,需要再downLoadFile中向线程池提交任务,并算出每个线程取任务的区间,起始位置、终止位置 /** 11个字节的图片 11/3 3 第一个线程 0-2 第二个线程 3-5 第三个线程 6-10 */ for(int I = 0;i<3;i++){ long start = i*block; long end = (i+1)*block-1; if(i==2){ end = count; } DownLoadRunnable runnable = new DownLoadRunnable(url, fileDownLoad.getAbsolutePath(), start, end); threadPool.execute(runnable); }查看全部
-
//由于使用到线程池,所以给线程池写runnable对象 static class DownLoadRunnable implements Runnable{ String url; String filename; long start; long end; run(){ URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection(); conn.setReadTimeout(5000); //指定数据长度,Http协议字段Range conn.setRequestProperty(“Range”, “bytes=”+start+”-”+end); conn.setRequestMethod(“GET”); //通过RandomAccess,写入本地文件 RandomAccessFile access = new RandomAccessFile(new File(fileName), “rwd”); access.seek(start); //开始读取数据 InputStream in = conn.getInputStream(); byte[] b = new byte[1024*4]; int len = 0; while(in.read(b)!=-1){ access.write(b,0,len); //从0开始,读取len的长度 } //关闭流 if(access!= null){ access.close(); } if(in!=null){ in.close(); } } }查看全部
-
多线程下载 使用线程池 ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3); 然后得到下载图片的总体长度 int count = conn.getContentLength(); //在本地通过三个线程来下载,每个线程下载count/3的大小 int block = count/3 //由于使用到线程池,所以给线程池写runnable对象查看全部
-
创建json 1)先创建好对应的实体数据 2)Gson gson = new Gson(); gson.toGson(result); //result为实体数据,即将实体数据result转换为json数据了查看全部
-
android中的转码查看全部
-
service 编码集的转化查看全部
-
TCP/IP基础——TCP三次握手描述图片查看全部
-
Android http查看全部
-
网页错误详情查看全部
-
Servlet 3.0上传文件:http://openhome.cc/Gossip/ServletJSP/Part.html查看全部
-
哈哈,好查看全部
-
这一节讲的是模仿迅雷进行多线程下载,主要知识点就是: 第一:我们需要使用线程池来开启多个线程,并分配每个线程需要下载的数据的长度, 第二:然后在每个线程下载完其需要下载的那部分内容时,就会使用一个handler给主线程发送一个消息,当主线程接收到所有下载线程发送的消息时,说明下载完了。 另外还有一个知识点是如何获取下载图片的名字查看全部
举报
0/150
提交
取消