`
yejun0099
  • 浏览: 26233 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android 文件下载到SDCARD

阅读更多

操作SDcard 需要权限

//写入数据权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//创建和删除文件权限
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 

 主界面

package com.example.loaddown;

import java.io.File;

import util.DownUtil;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

public class Activity08 extends Activity {
	
	EditText t1 ;
	EditText t2 ;
	Spinner sp ;
	Button b1 ;
	String name = null ;
	ArrayAdapter ad = null ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity08);
        
        t1 = (EditText) findViewById(R.id.t1);
        t2 = (EditText) findViewById(R.id.t2);
        
        b1 = (Button) findViewById(R.id.b1);
        b1.setText("下载");
        
        sp = (Spinner) findViewById(R.id.spin);
        ad = ArrayAdapter.createFromResource(this, R.array.spin, android.R.layout.simple_spinner_item);
        ad.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp.setPrompt("文件格式");
        sp.setAdapter(ad);
        sp.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				name = ad.getItem(arg2).toString();
				System.out.println(name);
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
			}
		}) ;
        
        
        b1.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
			String loadpath = t1.getText().toString();
			String fileName = t2.getText().toString();
			DownUtil down = new DownUtil();
			File file = new File(Environment.getExternalStorageDirectory()+"/"+fileName+name);
			Intent intent = new Intent() ;
			if(file.exists()){
				intent.putExtra("message", "文件已经存在");
			}
			else{
			down.loadTxt(fileName+name, loadpath);
			intent.putExtra("message", "下载完成");
			}
			
			intent.setClass(Activity08.this, OverActivity.class);
			Activity08.this.startActivity(intent);
			
			}
		});
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_activity08, menu);
        return true;
    }
}


 

结果界面:

package com.example.loaddown;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;


public class OverActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.over);
		TextView text = (TextView) findViewById(R.id.text1);
		Intent intent = getIntent();
		String msg = intent.getStringExtra("message");
		text.setText(msg);
		
	}

	
	
}

  

 

工具类:

package util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.os.Environment;

public class DownUtil {
	private URL url = null ;
	private HttpURLConnection con = null ; 
	String filePath ;

	
	public File down(String fileName,String loadPath){
		
			filePath = Environment.getExternalStorageDirectory()+"/";
			System.out.println(filePath);
			File file = new File(filePath+fileName);
		try {
			url = new URL(loadPath);
			con = (HttpURLConnection) url.openConnection() ;
			InputStream in = con.getInputStream() ;
			BufferedInputStream bfin = new BufferedInputStream(in);
			BufferedOutputStream bfout = new BufferedOutputStream(new FileOutputStream(file));
			int k = 0;
			byte b[] = new byte[4*1024];
			while((k=bfin.read(b))!=-1){
				bfout.write(b);
			}
			
			bfout.flush();
			bfout.close();
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return file;
		
	}
	
	
	public File loadTxt(String fileName,String loadPath){
		
		filePath = Environment.getExternalStorageDirectory()+"/";
		System.out.println(filePath);
		File file = new File(filePath+fileName);
		try {
			url = new URL(loadPath);
			con = (HttpURLConnection) url.openConnection() ;
			InputStream in = con.getInputStream() ;
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
			String s = null ;
			while ((s= reader.readLine())!=null){
				writer.write(s);
			}			
			writer.flush();
			writer.close();
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return file;

	}
	
	
}

 

 

分享到:
评论

相关推荐

    预置一些文件到系统sdcard目录.txt

    预置一些文件到系统sdcard目录

    Android应用 文件存储到SDCard 单元测试代码及讲解

    1. **Android文件存储** - **内部存储**: 应用私有的存储空间,只有该应用有权限访问。通常用于存储应用的数据、配置文件等,即使用户卸载应用,这些文件也会被删除。使用`Context.getFilesDir()`或`Context....

    android 下载图片到本地Sdcard

    在Android平台上,将图片从互联网下载到用户的外部存储(通常称为SDcard)是常见的需求,例如在应用中加载网络头像、壁纸或者其他图像资源。这个过程涉及到网络请求、数据流处理以及文件操作等多个方面。接下来,...

    android打开sdcard目录

    // suffix:需要选择的文件后缀,比如需要选择wav、mp3文件的时候设置为".wav;.mp3;",注意最后需要一个分号(;) // images:用来根据后缀显示的图标资源ID。 // 根目录图标的索引为sRoot; // 父目录的索引为...

    android webview实现自身下载文件自动保存SDCARD

    而“android webview实现自身下载文件自动保存SDCARD”这个话题则涉及到如何在WebView中处理文件下载,并且让这些文件自动保存到设备的外部存储(通常是SDCARD)中,而且整个过程对用户来说是透明的,即静默下载。...

    Android解析如何获取SDCard 内存项目源代码

    在Android系统中,获取SDCard(外部存储)的内存信息是开发者经常遇到的任务,这有助于管理应用程序的存储需求,比如保存用户数据、缓存文件或者下载内容。标题提到的"Android解析如何获取SDCard内存项目源代码"显然...

    Android 平台上SDCard的自动mount的解决方法

    本文将根据提供的文件标题、描述、标签以及部分内容,详细介绍如何在Android平台上实现SDCard的自动mount。 #### 确保SDCard驱动正常编译和使用 首先,确保SDCard的驱动程序已正确编译并且能够在Android设备上正常...

    android 读取外置SDCard

    在Android系统中,外置SDCard(也称为外部存储)是设备上用于扩展存储空间的区域,用户可以在这个空间上存储各种数据,如媒体文件、应用程序数据等。本篇文章将详细探讨如何在Android应用中实现对外置SDCard的读取、...

    android模拟器中使用SDCard

    例如,使用命令"adb push music.MP3 sdcard/Android"可以将音乐文件添加到模拟器的sdcard中。 接着,当文件成功推送到模拟器的sdcard后,可以在模拟器中使用DevTools中的MediaScanner服务来扫描媒体文件,从而使得...

    android 写入SDcard 文件

    在Android平台上,对SDCard(外部存储)进行文件操作是应用程序与用户交互的重要部分,尤其对于需要存储大量数据或媒体文件的应用来说。本教程将详细解释如何在Android中读写SDCard文件,非常适合初学者入门。 首先...

    Android将网上图片存储到sdcard中并显示出来的源码

    在Android开发中,将网络上的图片下载到SDCard并显示是一项常见的需求。这个源码示例提供了一种方法来实现这一功能。以下是基于标题和描述的相关知识点详解: 1. **Android权限管理**: 在Android中,访问SDCard...

    Android文件内部存储和SDCard存储

    通过阅读和理解这些代码,开发者可以更好地掌握Android文件存储的实践技巧。 总的来说,了解和熟练运用Android的内部存储和SDCard存储机制,是开发高质量应用的关键步骤,它能帮助我们更有效地管理应用数据,提升...

    Android数据存储之Sdcard

    外部存储,尤其是Sdcard,主要用来存放大容量、可共享的文件,如音频、视频、图片和文档。 在Android中,访问Sdcard需要相应的权限。在AndroidManifest.xml文件中,添加以下代码以请求读写权限: ```xml ...

    android中sdcard的读写.doc

    ### Android中SDCard的读写操作详解 ...通过以上介绍,我们可以了解到在Android开发中如何有效地对SDCard进行读写操作。正确地使用这些技术可以帮助开发者更好地管理应用的数据存储,提升用户体验。

    Android应用源码SdCard读写文件实例

    在Android平台上,对SDCard(外部存储)进行文件读写是常见的操作,尤其对于需要存储用户数据或资源的应用来说更是必不可少。本实例将探讨如何在Android应用中实现SdCard的读写功能。 首先,我们需要了解Android对...

    android中关于SDCard文件存储的操作

    android应用开发中关于SDCard读写操作的实例代码,在下载学习SDCard操作中,碰到很棘手的问题了。不过最后还在我的坚持下成功了,

    Android 文件 内存目录获取 sdcard目录获取

    - 在Android 6.0及以上版本,除了读取外部存储(如SDCard)的基本文件外,写入外部存储需要在运行时请求`Manifest.permission.WRITE_EXTERNAL_STORAGE`权限。 - 使用`ContextCompat.checkSelfPermission()`检查...

    android读取sdcard路径下的文件的方法

    代码如下:// 读取sdcard文件private void sdcardRead(){String fileName = “/sdcard/my_sdcard.txt”;// assets下文件//String fileName = “/sdcard/test/my_sdcard_test.txt”;// sdcard下子目录文件String ret =...

    android 默认安装apk 到sdcard

    在Android系统中,APK(Android Package)是应用程序的安装包,用户通常通过Google Play或其他第三方应用商店下载这些APK文件来安装应用。然而,默认情况下,Android设备会将APK安装到内部存储器中,这可能导致内存...

Global site tag (gtag.js) - Google Analytics