我正在为学校做一个项目,我正在实现一个可以用来从网上下载文件的工具(有一个限制选项).问题是,我将拥有一个GUI,我将使用一个JProgressBar小部件,我想展示当前的下载进度.为此,我需要知道文件的大小.如何在下载文件之前获取文件的大小.
我通过Android SDK中的默认HttpClient将照片上传到服务器.我想在用户界面中显示进度,有没有办法找出上传了多少?是否可以使用HttpUrlConnection?
我需要通过REST API下载联系人数据,我以JSON格式获取.问题是,它可能是很多联系人,所以我想观察进度(已经下载了多少联系人)并向用户报告(带有进度条,下面的代码在一个线程中运行).
但是,似乎行client.execute(getRequest); 建立连接并一次性下载整个内容,即我的InputStream阅读器(以块为单位获取内容)似乎没用.现在我想知道如何让它在大块中工作,所以我可以报告进展情况?
/** prepare HTML get request */
HttpGet getRequest = new HttpGet(url[0]);
getRequest.addHeader("Authorization", "OAuth " + myTokens.get_access_token());
/** execute HTML request */
DefaultHttpClient client = new DefaultHttpClient();
JSONArray records = null;
HttpResponse response = client.execute(getRequest);
/** init response handlers for input stream */
InputStream input = new BufferedInputStream(response.getEntity().getContent());
byte data[] = new byte[MAX_BUFFER_SIZE];
long totalContactsCount = -1;
int readContactsCount = 0;
int currentByteReadCount = 0;
/** read response from inpus stream */
while ((currentByteReadCount = input.read(data)) != …Run Code Online (Sandbox Code Playgroud)