当前位置: 代码迷 >> Android >> 【android开发】上载文件工具类
  详细解决方案

【android开发】上载文件工具类

热度:7   发布时间:2016-05-01 16:20:15.0
【android开发】下载文件工具类

FileUtils.java 主要用来操作SD卡上的文件夹和文件

package com.utils;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 FileUtils {	private String SDPATH;	public String getSDPATH() {		return SDPATH;	}	public FileUtils() {		SDPATH = Environment.getExternalStorageDirectory() + "/";	}	/**	 * 在SD卡上創建文件	 * @param fileName	 * @return	 * @throws IOException	 */	public File createSDFile (String fileName) throws IOException {		File file = new File(SDPATH+fileName);		if (file.exists()) {			file.createNewFile();		}		return file;	}		/**	 * 在SD卡上創建目錄	 * @param dirName	 * @return	 */	public File createSDDir(String dirName) {		File dir = new File(SDPATH+dirName);		if (!dir.isDirectory()) {			dir.mkdir();		}		return dir;	}		/**	 * 判斷SD卡上的文件夾是否存在	 * @param fileName	 * @return	 */	public boolean isFileExist(String fileName) {		File file = new File(SDPATH+fileName);		return file.exists();	}		/**	 * 将文件下载到SD卡上	 * @param path	 * @param fileName	 * @param input	 * @return	 */	public File writer2SDFromIinput(String path, String fileName,			InputStream input) {		File file = null;		OutputStream output = null;		try {			// 创建目录 dir.mkdir(); 			createSDDir(path);			file = createSDFile(path+fileName);			output = new FileOutputStream(file);			byte buffer[] = new byte[4 * 1024];			while ((input.read(buffer)) != -1) {				output.write(buffer);			}			output.flush();		} catch (Exception e) {			e.printStackTrace();		} finally {			try {				output.close();			} catch (Exception e) {				e.printStackTrace();			}		}		return file;	}}

?httpDownload.java 下载文件

package com.utils;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.URL;public class HttpDownloader {	private URL url = null;	/**	 * 下载文件	 * @param urlStr url	 * @return	 */	public String download(String urlStr) {		StringBuffer sb = new StringBuffer();		String line = null;		BufferedReader buffer = null;		try {			url = new URL(urlStr);			HttpURLConnection urlConn = (HttpURLConnection) url					.openConnection();			buffer = new BufferedReader(new InputStreamReader(urlConn					.getInputStream()));			while ((line = buffer.readLine()) != null) {				sb.append(line);			}		} catch (Exception e) {			e.printStackTrace();		} finally {			try {				buffer.close();			} catch (Exception e) {				e.printStackTrace();			}		}		return sb.toString();	}		/**	 * 	 * @param urlStr	 * @param path SD哪个目录上	 * @param fileName 要存放的文件名	 * @return	 */	public int downFile(String urlStr,String path,String fileName) {		InputStream in = null;			FileUtils fu = new FileUtils();			 if (fu.isFileExist(path+fileName)) {				return 1;			}				try {					in = getInputStreamFromUrl(urlStr);					File resultFile = fu.writer2SDFromIinput(path, fileName, in);					if (resultFile == null) {						return -1;					}				} catch (IOException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}finally {										try {						in.close();					}catch(Exception e) {						e.printStackTrace();						return -1;					}				}				return 0;	}		/**	 * get stream from url	 * @param urlStr	 * @return	 * @throws IOException	 */	public InputStream getInputStreamFromUrl(String urlStr) throws IOException {		url = new URL(urlStr);		HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();		InputStream inputStream = urlConn.getInputStream();		return inputStream;	}	}
1 楼 njyu 2011-01-13  
好使不?
  相关解决方案