package cn.com.basic.face.util; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import cn.com.basic.face.base.MainActivity; public class FileUtil { public static File writeToFile(String fileName, byte[] fileBytes) { try { return writeToFile(fileName, fileBytes, 0, fileBytes.length); }catch (Exception e) { e.printStackTrace(); } return null; } public static File writeToFile(String fileName, byte[] fileBytes, int offset, int size) { try { if (fileBytes == null) { fileBytes = new byte[]{}; } String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath(); File file = new File(dir, fileName); if (file.exists()) { file.delete(); } file.createNewFile(); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dir, fileName))); bos.write(fileBytes, offset, size); bos.flush(); bos.close(); return new File(dir, fileName); }catch (Exception e) { e.printStackTrace(); } return null; } public static File getFile(String shortFileName) { String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath(); return new File(dir, shortFileName); } public static File getPhotoFile() { File dir = new File(MainActivity.getInstance().getFilesDir().getAbsolutePath()); File[] photoFiles = dir.listFiles(); if (photoFiles != null) { for (File file : photoFiles) { if (file.isDirectory()) { continue; } String name = file.getName(); if (name.length() != "c248fe8f-6da5-4ec9-bffa-1a11bcf2fdc7".length()) { continue; } if (file.isFile()) { return file; } } } return null; } public static byte[] readFile(File file) { // Open file RandomAccessFile f = null; try { f = new RandomAccessFile(file, "r"); // Get and check length long longlength = f.length(); int length = (int) longlength; if (length != longlength) throw new IOException("File size >= 2 GB"); // Read file and return data byte[] data = new byte[length]; f.readFully(data); return data; } catch (Exception e){ e.printStackTrace(); } finally { try { if (f != null) { f.close(); } }catch (Exception e) { e.printStackTrace(); } } return new byte[]{}; } public static void deleteFile(String fileName) { try { String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath(); File file = new File(dir, fileName); if (file.exists()) { file.delete(); } }catch (Exception e) { e.printStackTrace(); } } public static String convertStreamToString(InputStream is) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line); } reader.close(); return sb.toString(); } public static String getStringFromFile (String filePath) { try { File fl = new File(filePath); FileInputStream fin = new FileInputStream(fl); String ret = convertStreamToString(fin); fin.close(); return ret; } catch (Exception e) { e.printStackTrace(); } return ""; } public static Bitmap loadBitmap(String fileName) { String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath(); File file = new File(dir, fileName); if (file.exists()) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options); return bitmap; } else { return null; } } }