您的位置:首页 > 移动开发 > Android开发

Android 文件操作工具类

2014-09-01 15:00 281 查看
package cn.ibabyzone.library;

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

import android.app.Activity;
import android.os.Environment;
import android.util.Log;

//用户数据读写函数
//存在SD卡时数据从SD卡读写不存在时通过DATA目录读写
public class FileUtils
{
private String SDPATH;
private int FILESIZE = 1;

public String getSDPATH()
{
return SDPATH;
}

public FileUtils(Activity thisActivity)
{
if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
{
SDPATH = Environment.getExternalStorageDirectory() + "/ibabyzone/";

}
else
{
SDPATH= thisActivity.getFilesDir().toString() + "/ibabyzone/";
}

}

/**
* 在SD卡上创建文件
*/
public File creatSDFile(String fileName) throws IOException
{
File file = new File(SDPATH + fileName);
file.createNewFile();
return file;
}

public void delFolder(String folderPath) {
try {
delAllFile(folderPath); //删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹

}
catch (Exception e) {
System.out.println("删除文件夹操作出错");
e.printStackTrace();

}
}

/**
* 删除文件夹里面的所有文件
* @param path String 文件夹路径 如 c:/fqf
*/
public void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
if (!file.isDirectory()) {
return;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
}
else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
delFolder(path+"/"+ tempList[i]);//再删除空文件夹
}
}
}

/**
* 在SD卡上创建目录
*/
public File creatSDDir(String dirName)
{
File dir = new File(SDPATH + dirName);
dir.mkdir();
return dir;
}

/**
* 判断SD卡上的文件夹是否存在
*/
public boolean isFileExist(String fileName)
{
File file = new File(SDPATH + fileName);
return file.exists();
}

public long file_time(String fileName)
{
File file = new File(SDPATH + fileName);
return file.lastModified();
}

/**
* 将一个InputStream里面的数据写入到SD卡中
*/
public File write2SDFromInput(String path, String fileName,InputStream input)
{
File file = null;
OutputStream output = null;
try
{
creatSDDir(path);
file = creatSDFile(path + fileName);
output = new FileOutputStream(file);
byte[] buffer = new byte[FILESIZE];
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;
}

public static void deleteFile(String fileStr) {
File file = new File(fileStr);
if (file.exists()) { // 判断文件是否存在
if (file.isFile()) { // 判断是否是文件
file.delete(); // delete()方法 你应该知道 是删除的意思;
}
file.delete();
}
}

public void delFile(String path) {
String str = SDPATH+path;
File file = new File(str);
if (file.exists()) {
file.delete();
}
}

public int CopyFileToFile(File fromFile, File toFile) {

try {
InputStream fosfrom = new FileInputStream(fromFile);
OutputStream fosto = new FileOutputStream(toFile);
byte bt[] = new byte[1024];
int c;
while ((c = fosfrom.read(bt)) > 0) {
fosto.write(bt, 0, c);
}
fosfrom.close();
fosto.close();
return 0;

} catch (Exception ex) {
return -1;
}
}

public File CopyFileRomToSD(String romfile){
if(!android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
{
return null;

}

File rom = new File(romfile);
File sd = new File(Environment.getExternalStorageDirectory() + "/ibabyzone/"+romfile);

if(CopyFileToFile(rom,sd) == 0){
return sd;
}

return null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息