`

android平台上的文件下载,文件和文件的操作

阅读更多

android平台上对文件的操作和java基本上是相同的

注意用Environment.getExternalStorageDirectory()+"/"获得的SD目录最好

package duohuo.teng.net;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.os.Environment;

public class FileUtil {

	private String SDPATH;

	public FileUtil() {
		//获得SD卡的路劲
		SDPATH=Environment.getExternalStorageDirectory()+"/";	
	}
	
	
	/*创建文件
	 * 
	 * */
	public File createFile(String fileName) throws IOException{
	File file=new File(SDPATH+fileName);
	file.createNewFile();
		return file;
	}
	/*创建文件夹
	 * 
	 * */
	public File createDirs(String dirName){
		File file=new File(SDPATH+dirName);
		Boolean b=file.mkdirs();
		System.out.println(b);
		return file;
	}
	/*判断文件(夹)是否存在
	 * 
	 * */	
	public boolean isFileExist(String path){
		return new File(SDPATH+path).exists();
		
	}
	public File writeToSDFromInputStream(String path,String fileName,InputStream in){
		File file=null;
		OutputStream out = null;
		
		createDirs(path);
		try {
			 path=path+"/"+fileName;
			System.out.println(path);
		file=createFile(path);
		out=new FileOutputStream(file);
		byte[] buffer=new byte[4*1024];
		while(in.read(buffer)!=-1){
			out.write(buffer);

		}
		
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				if(out!=null)
				out.close();
				if(in!=null)
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		}
		
		
		return file;
	}
	/*delete file
	 * @return 0 文件不存在 1删除成功
	 * */
	public int deleteFile(String fileAllName){
		File file=new File(SDPATH+fileAllName);
	if(isFileExist(file.getPath())){
		return 0;
	}
	
	file.delete();
	return 1;

		
		
		
		
		
	}
	
}

下面是下载 

package duohuo.teng.net;

import java.io.BufferedReader;
import java.io.File;
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 java.net.URLConnection;


public class HttpDownloadUtil {

	
	/*将文件保存为String
	 * @param urlStr 本机测试是不是ip不是localhost和127.0.0.1,这是指android的IP,电脑是10.0.2.2
	 * */
	public String downloadString(String urlStr){
		StringBuffer result=new StringBuffer();;
		URL url;
		InputStream in = null;
		BufferedReader reader=null;
		try {
			 url=new URL(urlStr);
			 HttpURLConnection con=(HttpURLConnection)url.openConnection();
			 in=con.getInputStream();
			
		reader=new BufferedReader(new InputStreamReader(in));
		
		String line;
		while((line=reader.readLine())!=null){
			result.append(line);
		}	
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				if(reader!=null)
					reader.close();
				if(in!=null)
					in.close();
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		return result.toString();
	}
	/*将文件写入SD卡
	 * @return -1 写入失败 0存在 1写入成功
	 * @param urlStr 本机测试是不是ip不是localhost和127.0.0.1,这是指android的IP,电脑是10.0.2.2
	 * */
	
	
	public int downloadFile(String urlStr,String toPath,String fileName){
		try {
			URL url=new URL(urlStr);
		URLConnection con=url.openConnection();
		InputStream in=con.getInputStream();
		FileUtil fileUtil=new FileUtil();
		if(fileUtil.isFileExist(toPath+fileName)){
			
			return 0;
		}
		
		File file=fileUtil.writeToSDFromInputStream(toPath, fileName, in);
			
		if(file==null){
			return -1;
		}
		
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return -1;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return -1;
		}
		
		return 1;
		
		
		
		
	}
	
	
	
	
}

 

分享到:
评论

相关推荐

    Android平台的txt文本文件读写操作

    本文将详细介绍如何在Android平台上使用Java进行文本文件的读写操作,并提供一些实用的代码示例。 #### 二、Android中的文本文件读写技术 ##### 2.1 使用`FileWriter`进行文件写入 在Android平台中,可以通过Java...

    android从网络上下载文件

    在Android平台上,从网络下载文件是一项常见的任务,无论是更新应用、获取用户数据还是同步资源,都需要用到这个功能。本文将深入探讨如何在Android中实现网络文件的下载,包括使用HttpURLConnection、OkHttp以及...

    Android扫描本地pdf文件和从网络下载pdf文件并打开

    在Android平台上,开发人员经常需要处理文件操作,特别是与PDF(Portable Document Format)相关的任务,如扫描本地PDF文件、从网络下载PDF文件以及打开这些文件供用户查看。本篇文章将详细探讨如何在Android应用中...

    android使用socket上传、下载文件

    本篇将详细讲解如何在Android应用中使用Socket进行文件的上传和下载操作。 首先,理解Socket的基本概念:Socket是应用程序与网络协议之间的接口,它允许两个网络应用程序通过TCP/IP协议进行通信。在Android中,我们...

    Android文件下载(实现断点续传)

    综上所述,实现Android文件的断点续传下载主要依赖于Java的RandomAccessFile类和多线程技术,通过精确控制文件的读写位置和下载范围,确保下载的连续性和可靠性。这种技术不仅提高了用户的下载体验,也在一定程度上...

    android通过Service进行文件下载,后台下载

    本教程将深入探讨如何利用Service组件在Android设备上实现文件的后台下载,确保即使用户退出应用程序,文件下载也能继续进行。 ### 1. Android Service基础知识 Service是Android四大组件之一,它在后台运行,没有...

    基于Android平台的文件管理案例源码下载

    这个"基于Android平台的文件管理案例源码下载"提供了一个实用的示例,旨在帮助开发者学习如何有效地管理和操作设备上的文件和目录。以下是对这个案例的一些关键知识点的详细解析: 1. **Android文件系统**:Android...

    Delphi Android平台下分享任意文件

    本文将深入探讨如何在Delphi环境下,特别是在Android平台上实现任意文件的分享功能。Delphi是一款强大的RAD(快速应用程序开发)工具,它提供了对多种操作系统,包括Android的支持。通过使用Delphi,开发者可以利用...

    android txt文件保存读取操作

    在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...

    Android 下载文件Demo

    本"Android 下载文件Demo"旨在演示如何利用字节流进行文件下载操作。在Java和Android中,输入输出流(IO流)是处理数据传输的核心工具,主要分为字节流和字符流两大类。字节流处理二进制数据,如图片、音频、视频...

    Android文件上传,文件选择器,多选

    本文将深入探讨如何在Android平台上实现多选和单选文件的功能。 一、文件选择器 1. 自定义文件选择器:为了实现文件选择器,开发者通常需要创建一个自定义的Dialog或Activity,展示设备上的文件结构。这通常涉及到...

    android手机文件上传和下载

    在Android平台上,文件的上传和下载是常见的操作,尤其在移动应用中,用户可能需要将本地数据同步到云端,或者从服务器获取数据。本教程主要涵盖两个方面:Android手机文件的上传和下载,以及如何使用XAMPP搭建后端...

    Android文件管理器

    综上所述,Android文件管理器是一个功能丰富的应用,旨在提供便捷的文件操作体验。它的核心在于实现各种文件操作,并结合现代Android系统的特性,提供良好的用户体验。开发者在构建这样的应用时,需要考虑用户需求、...

    Android 读写文件实例

    以上就是Android平台上的文件读写操作的基本方法和注意事项。通过了解这些知识,开发者可以有效地在Android设备上存储和读取数据。在实际项目中,还需要结合具体需求,考虑数据安全、文件同步、性能优化等方面的问题...

    android开发 文件上传下载 源码

    在Android开发中,文件的上传和下载是常见的功能需求,特别是在构建移动应用时,如社交应用、云存储服务等。本资源提供了android开发中的文件上传和下载的源码,可以帮助开发者快速理解和实现这一功能。 一、文件...

    测试文件操作的小程序android

    在Android平台上,文件操作是应用程序开发中的重要环节,无论是在保存用户数据、处理资源文件,还是与其他应用交换信息时,都离不开对文件的操作。本文将深入探讨如何在Android环境中进行文件操作,主要涵盖以下几个...

    android文件上传下载示例代码

    本示例代码着重于Android平台上的文件上传和下载操作,尤其是针对txt文本和mp3音频文件。下面将详细阐述实现这些功能的关键知识点。 一、Android文件系统 Android设备使用Linux内核,因此其文件系统遵循Unix-like...

    Android文件管理器源码

    Android文件管理器(增加了文件夹复制移动,下载资源暂停删除等,以及复制过程中的可视化进程)是一个基于Android开发的应用,包含常用文件操作以及文件下载功能,文件操作包括打开文件夹和打开各类的文件(apk、avi...

    一个打开文件目录操作的android程序

    综上所述,开发一个在Android上打开文件目录的操作程序涉及到的知识点包括:Android文件系统、`java.io.File`操作、`ListView`与`ArrayAdapter`、`Dialog`组件、权限管理、事件监听以及API兼容性处理。通过理解和...

    android从web服务器文件下载,进度条显示,下载完成后点击安装

    在Android平台上,从Web服务器下载文件,如APK或MP3,并实时显示下载进度条,是常见的需求。这个过程涉及到网络编程、文件操作以及UI更新等多个技术环节。下面将详细介绍这些知识点。 首先,我们需要理解Android的...

Global site tag (gtag.js) - Google Analytics