FileUtil.java 3.17 KB
package com.sunvote.xpadapp.utils;

import com.sunvote.util.LogUtil;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileUtil {

	static String TAG = "FileUtil";

	public static byte[] getByteArrayFromFile(String fileName) {
		File file = null;
		try {
			file = new File(fileName);
		} catch (Exception e) {
			LogUtil.e(TAG,e);
			return null;
		}

		if (!file.exists() || !file.isFile() || !file.canRead()) {
			return null;
		}

		int len = (int) file.length();
		byte buffer[] = new byte[len];

		try {
			FileInputStream fis = new FileInputStream(file);
			while (fis.read(buffer) > 0) {

			}
			fis.close();
		} catch (Exception e) {
			LogUtil.e(TAG,e);
		}

		return buffer;
	}

	public static byte[] getByteArrayFromFile(File file) {

		if (!file.exists() || !file.isFile() || !file.canRead()) {
			return null;
		}

		int len = (int) file.length();
		byte buffer[] = new byte[len];

		try {
			FileInputStream fis = new FileInputStream(file);
			while (fis.read(buffer) > 0) {

			}
			fis.close();
		} catch (Exception e) {
			LogUtil.e(TAG,e);
		}

		return buffer;
	}

	public static boolean saveByteArrayToFile(String fileName, byte[] data) {
		boolean success = false;
		if (null != fileName) {
			String name = fileName;
			int count = 0;
			File file = new File(name);
			while (file.exists()) {
				count++;
				name = fileName + count;
				file = new File(name);
			}
			file.getParentFile().mkdirs();
			try {
				FileOutputStream fs = new FileOutputStream(fileName);
				fs.write(data);
				fs.close();
				success = true;
			} catch (FileNotFoundException e) {
				LogUtil.e(TAG,e);
			} catch (IOException e) {
				LogUtil.e(TAG,e);
			}
			return success;
		} else {
			return success;
		}
	}

	public static synchronized void deleteFile(File file) {
		if(file == null){
			return;
		}
		if (file.isFile()) {
			file.delete();
			return;
		}

		if (file.isDirectory()) {
			File[] childFiles = file.listFiles();
			if (childFiles == null || childFiles.length == 0) {
				file.delete();
				return;
			}

			for (int i = 0; i < childFiles.length; i++) {
				deleteFile(childFiles[i]);
			}
			file.delete();
		}
	}

	public static synchronized void deleteFile(File file,String ignoFile) {
		if(file == null){
			return;
		}
		if (file.isFile()) {
			if(!file.getName().contains(ignoFile)){
				file.delete();
			}
			return;
		}

		if (file.isDirectory()) {
			File[] childFiles = file.listFiles();
			if (childFiles == null || childFiles.length == 0) {
				if(!file.getName().contains(ignoFile)){
					file.delete();
				}
				file.delete();
				return;
			}

			for (int i = 0; i < childFiles.length; i++) {
				deleteFile(childFiles[i]);
			}
			if(!file.getName().contains(ignoFile)){
				file.delete();
			}
		}
	}

	public static void deleteFileInDir(File file) {
		if(file == null){
			return;
		}
		if (file.isFile()) {
			file.delete();
			return;
		}

		if (file.isDirectory()) {
			File[] childFiles = file.listFiles();
			if (childFiles == null || childFiles.length == 0) {

				return;
			}

			for (int i = 0; i < childFiles.length; i++) {
				deleteFileInDir(childFiles[i]);
			}

		}
	}
}