概述
权限
访问网络权限+外部存储权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<Button
android:id="@+id/download"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="47dp"
android:text="download" />
导包
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;
onCreate方法
download=(Button)findViewById(R.id.download);
download.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this,"开始下载!",Toast.LENGTH_SHORT).show();
DownloadThread t = new DownloadThread(); // 调用自己写的下载类,执行下载任务
t.start();
}
});
下载方法实现
class DownloadThread extends Thread{ // 该线程类封装任务:实现下载和写入sd卡,自己写的
@Override
public void run() {
String urlpath ="https://lgch.xyz"; // 自定义资源地址
InputStream inputStream = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
try{
URL url = new URL(urlpath); // 获取 URL对象
URLConnection con = url.openConnection(); // 获取 URL链接
inputStream = con.getInputStream(); // 获取输入流用于读取/下载数据
bis = new BufferedInputStream(inputStream); // 缓冲流 提高效率
String state = Environment.getExternalStorageState(); // 获取sd卡状态
if(state.equals(Environment.MEDIA_MOUNTED)){ // 当sd卡可以存储时
// /storage/sdcard/mywebdata 获取外部存储路径
String path=Environment.getExternalStorageDirectory()+"/mywebdata";
Log.e("地址", path);
fos = new FileOutputStream(path); // 输出流 写入
int i;
while((i=inputStream.read())!=-1){ // 读不到的时候,值是-1,能读到就写入
fos.write(i); // 写入文件
}
Log.e("读取结束", "==================================");
}else{
Toast.makeText(MainActivity.this, "CD 卡不存在",Toast.LENGTH_LONG);
}
}catch(Exception e){
Log.e("MainActivity",e.getMessage());
}finally{
try {
bis.close();
fos.close(); //关流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
最后
以上就是优雅树叶为你收集整理的安卓 下载网页的全部内容,希望文章能够帮你解决安卓 下载网页所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复