首页 > 其他分享 >安卓 下载网页

安卓 下载网页

时间:2023-03-14 12:34:49浏览次数:51  
标签:Toast 网页 java URL 安卓 import android 下载 layout


权限

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

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


标签:Toast,网页,java,URL,安卓,import,android,下载,layout
From: https://blog.51cto.com/u_16006123/6120314

相关文章