package com.keju.maomao.util; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; 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.text.DecimalFormat; import android.content.Context; /** * 文件处理工具类 * * @author Zhoujun * */ public class FileUtil { /** * 读取assets下的文本数据 * * @param fileName * @return */ public static String getStringFromAssets(Context context, String fileName) { try { InputStreamReader inputReader = new InputStreamReader(context.getResources().getAssets().open(fileName)); BufferedReader bufReader = new BufferedReader(inputReader); String line = ""; String Result = ""; while ((line = bufReader.readLine()) != null) Result += line; return Result; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 读取文本流文件 * * @param is * @return */ public static String readStream(InputStream is) { try { ByteArrayOutputStream bo = new ByteArrayOutputStream(); int i = is.read(); while (i != -1) { bo.write(i); i = is.read(); } return bo.toString(); } catch (IOException e) { return ""; } } /** * 获得文件大小 * * @param filePath * @return * @throws IOException */ public static long getFileSize(File f) throws IOException { long s = 0; if (f.exists()) { FileInputStream fis = null; fis = new FileInputStream(f); s = fis.available(); } return s; } /** * 格式化文件大小 * * @param fileS * @return * @throws IOException */ public static String formatFileSize(File f) {// 转换文件大小 String fileSizeString = ""; try { long fileS = getFileSize(f); DecimalFormat df = new DecimalFormat("#.00"); if (fileS < 1024) { fileSizeString = df.format((double) fileS) + "b"; } else if (fileS < 1048576) { fileSizeString = df.format((double) fileS / 1024) + "kb"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "mb"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "gb"; } } catch (Exception e) { } return fileSizeString; } /** * 拷贝资源文件到sd卡 * * @param context * @param resId * @param databaseFilename * 如数据库文件拷贝到sd卡中 */ public static void copyResToSdcard(Context context, int resId, String databaseFilename) {// name为sd卡下制定的路径 try { // 不存在得到数据库输入流对象 InputStream is = context.getResources().openRawResource(resId); // 创建输出流 FileOutputStream fos = new FileOutputStream(databaseFilename); // 将数据输出 byte[] buffer = new byte[8192]; int count = 0; while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } // 关闭资源 fos.close(); is.close(); } catch (Exception e) { } } /** * 递归删除某个目录下所有文件; */ public static Boolean deleteFiles(File file) { if (file.isFile() || file.list().length == 0) { // file.delete(); } else { if (file.length() != 0) { File[] files = file.listFiles(); for (File f : files) { deleteFiles(f); f.delete(); } // file.delete(); } else { return false; } } return true; } }