A. android文件下载程序出现问题
获取返回流时候错误,manifest中 网络权限是否添加,查看logcat看具体错误信息、警告!
B. 怎么下载android 官方开发文档
实现的代码基本如下:
public void downFile(String url, String path, String fileName)
throws IOException {
if (fileName == null || fileName == "")
this.FileName = url.substring(url.lastIndexOf("/") + 1);
else
this.FileName = fileName; // 取得文件名,如果输入新文件名,则使用新文件名
URL Url = new URL(url);
URLConnection conn = Url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
this.fileSize = conn.getContentLength();// 根据响应获取文件大小
if (this.fileSize <= 0) { // 获取内容长度为0
throw new RuntimeException("无法获知文件大小 ");
}
if (is == null) { // 没有下载流
sendMsg(Down_ERROR);
throw new RuntimeException("无法获取文件");
}
FileOutputStream FOS = new FileOutputStream(path + this.FileName); // 创建写入文件内存流,
通过此流向目标写文件
byte buf[] = new byte[1024];
downLoadFilePosition = 0;
int numread;
while ((numread = is.read(buf)) != -1) {
FOS.write(buf, 0, numread);
downLoadFilePosition += numread
}
try {
is.close();
} catch (Exception ex) {
;
}
}
通过此代码就可以实现将内容保存到SD卡等设备上,当然要使用网络,必须得有网络的访问权限。这个需要自己添加,在这里不再添加。
上面的代码没有实现进度条功能,如果要实现进度条功能,我现在考虑到的就是使用消息进行发送提示,首先实现一个消息。
private Handler downloadHandler = new Handler() { // 用于接收消息,处理进度条
@Override
public void handleMessage(Message msg) { // 接收到的消息,并且对接收到的消息进行处理
if (!Thread.currentThread().isInterrupted()) {
switch (msg.what) {
case DOWN_START:
pb.setMax(fileSize); //设置开始长度
case DOWN_POSITION:
pb.setProgress(downLoadFilePosition); // 设置进度
break;
case DOWN_COMPLETE:
Toast.makeText(DownLoadFileTest.this, "下载完成!", 1).show(); // 完成提示
break;
case Down_ERROR:
String error = msg.getData().getString("下载出错!");
Toast.makeText(DownLoadFileTest.this, error, 1).show();
break;
}
}
super.handleMessage(msg);
}
};
C. android如何下载比较大的文件
电脑上安装豌豆荚或者360手机助手,与手机用数据线相连,在电脑上可以直接下载传输到手机里
D. android通过http post实现文件下载
可参照我的如下代码
java">java.io.OutputStreamos=null;
java.io.InputStreamis=null;
try{
java.io.Filefile=newjava.io.File(str_local_file_path);
if(file.exists()&&file.length()>0){
}else{
file.createNewFile();
java.net.URLurl=newjava.net.URL(str_url);
java.net.HttpURLConnectionconn=(java.net.HttpURLConnection)url.openConnection();
os=newjava.io.FileOutputStream(file);
is=conn.getInputStream();
byte[]buffer=newbyte[1024*4];
intn_rx=0;
while((n_rx=is.read(buffer))>0){
os.write(buffer,0,n_rx);
}
}
returntrue;
}catch(MalformedURLExceptione){
}catch(IOExceptione){
}finally{
os.flush();
os.close();
is.close();
}
returnfalse;
E. android如何调用系统自带文件下载功能
文件下载是那种从网上下载的那种吗?
如果是的话有一种http下载
1.直接打开文件
A.创建一个一个URL对象url = new URL(urlStr);这个url可以直接是网络下载地址。
B.通过URL对象,创建一个HttpURLConnection对象
// 创建一个Http连接
HttpURLConnection urlConn = (HttpURLConnection) url
.openConnection();
C.得到InputStram,这个输入流相当于一个管道,将网络上的数据引导到手机上。但是单纯的对于InputStram不好进行操作,它是字节流,因此用InputStreamReader把它转化成字符流。然后在它上面再套一层BufferedReader,这样就能整行的读取数据,十分方便。这个在java的socket编程中我们已经见识过了。
// 使用IO流读取数据
buffer = new BufferedReader(new InputStreamReader(urlConn
.getInputStream()));
D.从InputStream当中读取数据
while ((line = buffer.readLine()) != null) {
sb.append(line);}
2.文件存到sd卡中
SDPATH = Environment.getExternalStorageDirectory() + "/"
File dir = new File(SDPATH + dirName);
dir.mkdirs();
File file = new File(SDPATH + dirName + fileName);
file.createNewFile()
url = new URL(urlStr);这个url可以直接是网络下载地址。
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
inputStream inputStream =urlConn.getInputStream()
output = new FileOutputStream(file);
byte buffer [] = new byte[4 * 1024];
while((inputStream.read(buffer)) != -1)
{
output.write(buffer);
}//
F. android 如何从tomcat服务器上下载文件
//下载
private InputStream FileDownload(String url_str) throws Exception{
URL url = new URL(url_str);
// 创建连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(3000);
conn.setConnectTimeout(3000);
conn.connect();
// 获取文件大小
length = conn.getContentLength();
// 创建输入流
InputStream is = conn.getInputStream();
return is;
}
//保存
private void FileSave(String filename,InputStream is,int length) throws Exception{
File file = new File(mSavePath);
// 判断文件目录是否存在
if (!file.exists())
{
file.mkdir();
}
File apkFile = new File(mSavePath, filename);
FileOutputStream fos = new FileOutputStream(apkFile);
int count = 0;
// 缓存
byte buf[] = new byte[1024];
// 写入到文件中
do
{
int numread = is.read(buf);
count += numread;
// 计算进度条位置
progress = (int) (((float) count / length) * 100);
// 更新进度
mHandler.sendEmptyMessage(DOWNLOAD);
if (numread <= 0)
{
// 下载完成
mHandler.sendEmptyMessage(DOWNLOAD_FINISH);
break;
}
// 写入文件
fos.write(buf, 0, numread);
} while (!cancelUpdate);// 点击取消就停止下载.
fos.close();
}
/**
* 安装APK文件
*/
private void installApk()
{
File apkfile = new File(mSavePath, mHashMap.get("name"));
if (!apkfile.exists())
{
return;
}
// 通过Intent安装APK文件
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive");
mContext.startActivity(i);
}
G. 安卓手机下载文件在哪下载
1.
一般手机里有一个下载列表。如下图:
2.
点击后你所有下载的东东,就在这里。
3.
或者你看到上面图标里有一个文件管理,这个文件夹里有所有你手机存储的文件,在文件管理里一般有一个download文件夹,在这里有可能有你的文件。
H. android后台多文件下载怎样实现
可以创建一个服务,然后开启多线程下载。不过不推荐多线程,建议使用单线程排队下载。
I. android从tomcat下载文件
从tomcat下载文件的配置有几种,以下是常用的设置方式:
创建虚拟目录
首先停止Tomcat服务。打开tomcat里找到conf这个文件夹下的server.xml文件,在里面找到</Host> 在上面 加上这样的一段:
<Context path="" docBase="d:/download" crossContext="false" debug="0" reloadable="true"></Context>
然后把tomcat启动一下就OK
在tomcat首页中显示根目录下的文件列表
是否显示文件列表,可以在tomcat/conf/web.xml里配置,把 <init-param>
<param-name>listings</param-name> <param-value>false</param-value> </init-param>里的<param-value>false</param-value>改成<param-value>ture</param-value>即可显示。 默认的是false 。
增加新的文件类型
打开tomcat/conf/web.xml文件,添加.cfg和.Ini的文件类型。 <mime-mapping>
<extension>cfg</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping> <mime-mapping>
<extension>ini</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
以上内容都设置好后,重新启动tomcat服务 进入测试。
打开IE,在地址栏中输入http://localhost:你的tomcat端口,在IE中列出虚拟目录d:download下的文件列表,双击某个文件或右键选择“目标另存为”就可以下载文件了。
J. android如何实现从tomcat服务器中下载文件
你要是用模拟器的话,可以有点问题。
如果你用真机,并且保证你的真机和你的电脑在同一网络里面,这样的话,通过android里面的浏览器就能下载tomcat提供的文件了。
也就是说,你要在android里面下载tomcat提供的文件,你必须保证两者网络正常才行。
模拟器里面实际上是一个完整的操作系统,和外面的电脑相对独立。