【发布时间】:2011-05-30 12:26:56
【问题描述】:
我是 android 的新手。我正在制作一个应用程序,我想在其中显示从服务器下载的文件的大小。 有什么方法可以显示我们下载了多少? 拜托
如果有人可以帮忙。
谢谢
【问题讨论】:
-
请尽量使您的问题更具体。没有方法
displayHowMuchDownloadedSofar()。你被困在哪里了??
我是 android 的新手。我正在制作一个应用程序,我想在其中显示从服务器下载的文件的大小。 有什么方法可以显示我们下载了多少? 拜托
如果有人可以帮忙。
谢谢
【问题讨论】:
displayHowMuchDownloadedSofar()。你被困在哪里了??
我希望您将从服务器获取的数据存储在任何特定位置的文件中。所以创建一个文件 passinb 位置的绝对路径。使用 length() 方法获取文件大小。 这样你就可以知道你从服务器下载了多少数据
File f = new File("absolutepath");
if(f.exists()){
f.length()
}
谢谢 迪帕克
【讨论】:
你好。您可以在异步任务中使用下面的代码或首选代码,在onProgressUpdate 方法中您可以检查输入源变量的大小。
URL u = new URL("http://www.java2s.com/binary.dat");
URLConnection uc = u.openConnection();
String contentType = uc.getContentType();
int contentLength = uc.getContentLength();
if (contentType.startsWith("text/") || contentLength == -1) {
throw new IOException("This is not a binary file.");
}
InputStream raw = uc.getInputStream();
InputStream in = new BufferedInputStream(raw);
byte[] data = new byte[contentLength];
int bytesRead = 0;
int offset = 0;
while (offset < contentLength) {
bytesRead = in.read(data, offset, data.length - offset);
if (bytesRead == -1)
break;
offset += bytesRead;
}
in.close();
【讨论】:
只需阅读下面的文档,其中解释了异步任务。在其进度更新中,您可以检查输入源文件的大小。 如果您想向 UI 显示此内容,请使用进度对话框。
【讨论】: