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