我是靠谱客的博主 优雅树叶,最近开发中收集的这篇文章主要介绍安卓 下载网页,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

权限

访问网络权限+外部存储权限

<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();
			}
		}
	}
	}

最后

以上就是优雅树叶为你收集整理的安卓 下载网页的全部内容,希望文章能够帮你解决安卓 下载网页所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部