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