Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 文件操作工具類

Android 文件操作工具類

編輯:關於Android編程

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved