zoukankan      html  css  js  c++  java
  • android 文件操作方法集合类分享

    这个类整合了写文件,删除文件,复制文件,搜索文件,判断文件是否存在等,是对一些常用的功能进行封装了。
    用于记录和方便以后使用。
    public class FileAdapter {
            private static final String TAG = "FileAdaptor";
     
            /**
             * 获取指定位置的指定类型的文件
             * 
             * @param path
             *            文件夹路径
             * @param type
             *            文件类型(如“*.jpg;*.png;*.gif”)
             * @return
             */
            public static void getFileList(String path, String type,
                            final OnFileListCallback onFileListCallback) {
     
                    new AsyncTask<String, String, String>() {
                            ArrayList<FileInfo> list = new ArrayList<FileInfo>();
                            @Override
                            protected void onPostExecute(String result) {
                                    onFileListCallback.SearchFileListInfo(list);
                            }
     
                            @Override
                            protected String doInBackground(String... params) {
                                    // TODO Auto-generated method stub
                                     
                                    String path = params[1].substring(params[1]
                                                    .lastIndexOf(".") + 1);
                                    File file = new File(params[0]);
                                    scanSDCard(file,path,list);
                                    return null;
                            }
     
                    }.execute(path, type, "");
            }
     
            /**
             * 扫描完成后的回调,获取文件列表必须实现
             * 
             * @author cola
             * 
             */
            public interface OnFileListCallback {
                    /**
                     * 返回查询的文件列表
                     * @param list 文件列表
                     */
                    public void SearchFileListInfo(List<FileInfo> list);
            }
     
            private static void scanSDCard(File file, String ext, ArrayList<FileInfo> list) {
                    if (file.isDirectory()) {
                            File[] files = file.listFiles();
                            if (files != null) {
                                    for (int i = 0; i < files.length; i++) {
                                            File tmp = files<i>;
                                            if (tmp.isFile()) {
                                                    String fileName = tmp.getName();
                                                    String filePath = tmp.getName();
                                                    if (fileName.indexOf(".") >= 0) {
                                                            fileName = fileName.substring(fileName
                                                                            .lastIndexOf(".") + 1);
                                                            if (ext != null && ext.equalsIgnoreCase(fileName)) {
                                                                    AspLog.i(TAG, filePath);
                                                                    FileInfo info = new FileInfo();
                                                                    info.fileName = filePath;
                                                                    info.filePath = tmp.getAbsolutePath();
                                                                    list.add(info);
                                                            }
                                                    }
                                            } else
                                                    scanSDCard(tmp, ext, list);
                                    }
                            }
                    } else {
                            if (file.isFile()) {
                                    String fileName = file.getName();
                                    String filePath = file.getName();
                                    if (fileName.indexOf(".") >= 0) {
                                            fileName = fileName
                                                            .substring(fileName.lastIndexOf(".") + 1);
                                            if (ext != null && ext.equalsIgnoreCase(fileName)) {
                                                    AspLog.i(TAG, filePath);
                                                    FileInfo info = new FileInfo();
                                                    info.fileName = filePath;
                                                    info.filePath = file.getAbsolutePath();
                                                    list.add(info);
                                            }
                                    }
                            }
                    }
            }
     
        /**
         * 判断
         */
        public static boolean isSdCardExist() {
            return Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
        }
     
        /**
         * 目录相关
         */
        public static String getSdCardRootDir() {
            return Environment.getExternalStorageDirectory().getPath() + "/";
        }
     
        public static String getCacheDir(Context ctx) {
            // /data/data/<package name>/cache
            return ctx.getCacheDir().getPath() + "/";
        }
     
        public static String getFilesDir(Context ctx) {
            // /data/data/<package name>/files
            return ctx.getFilesDir().getPath() + "/";
        }
     
        public static String getSharedPrefDir(Context ctx) {
            String path = "/data/data/com.timedee.calendar/shared_prefs/";
            mkDir(path);
            return path;
        }
     
        public static String getSdDataDir() {
            return getSdCardRootDir() + "timedee/.data/";
        }
     
        public static String getBackupDir() {
            return getSdCardRootDir() + "timedee/.backup/";
        }
     
        public static boolean mkDir(String path) {
            File dir = new File(path);
            boolean res = dir.mkdirs();
     
            return res;
        }
     
        /**
         * 文件操作相关
         */
        public static boolean writeFile(String path, InputStream is) {
            boolean result = false;
            FileOutputStream os = null;
            BufferedOutputStream bos = null;
            try {
                File file = new File(path);
                os = new FileOutputStream(file, false);
                bos = new BufferedOutputStream(os);
                int readLen = 0;
                byte[] buf = new byte[1024];
                while ((readLen = is.read(buf)) != -1) {
                    bos.write(buf, 0, readLen);
                }
                bos.flush();
                bos.close();
                os.close();
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    bos.close();
                    os.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
     
            return result;
        }
     
        public static boolean writeTextFile(String path, String data) {
            boolean result = false;
            FileWriter fw = null;
            try {
                File file = new File(path);
                fw = new FileWriter(file);
                fw.write(data);
                fw.close();
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    fw.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
     
            return result;
        }
     
        public static InputStream readFile(String path) {
            File file = new File(path);
            FileInputStream fis = null;
     
            try {
                fis = new FileInputStream(file);
            } catch (Exception e) {
     
            }
     
            return fis;
        }
     
        public static boolean CopyFile(String fromFile, String toFile) {
            try {
                InputStream fosfrom = new FileInputStream(fromFile);
                OutputStream fosto = new FileOutputStream(toFile);
                byte bt[] = new byte[4096];
                int c;
                while ((c = fosfrom.read(bt)) > 0) {
                    fosto.write(bt, 0, c);
                }
                fosfrom.close();
                fosto.close();
                bt = null;
                return true;
     
            } catch (Exception ex) {
                return false;
            }
        }
     
        public static boolean CopyAssetFile(Context ctx, String fromFile, String toFile) {
            try {
                InputStream fosfrom = ctx.getAssets().open(fromFile);
                OutputStream fosto = new FileOutputStream(toFile);
                byte bt[] = new byte[4096];
                int c;
                while ((c = fosfrom.read(bt)) > 0) {
                    fosto.write(bt, 0, c);
                }
                fosfrom.close();
                fosto.close();
                bt = null;
                return true;
     
            } catch (Exception ex) {
                return false;
            }
        }
     
        public static boolean deleteFile(String path) {
            try {
                File file = new File(path);
                return file.delete();
            } catch (Exception ex) {
                return false;
            }
        }
     
        public static boolean isFileExist(String path) {
            try {
                File file = new File(path);
                return file.exists();
            } catch (Exception ex) {
            }
     
            return false;
        }
    }</i>
    android QQ群:222392467
    资料:
    http://www.yidin.net/?p=8280
    http://www.yidin.net/?p=9725
  • 相关阅读:
    【反射】Java反射机制
    Composer教程之常用命令
    Composer教程之基础用法
    Composer教程之初识Composer
    Composer 的结构详解
    现代 PHP 新特性系列(七) —— 内置的 HTTP 服务器
    现代 PHP 新特性系列(一) —— 命名空间
    现代 PHP 新特性系列(二) —— 善用接口
    现代 PHP 新特性系列(三) —— Trait 概览
    现代 PHP 新特性系列(四) —— 生成器的创建和使用
  • 原文地址:https://www.cnblogs.com/ondream/p/3082339.html
Copyright © 2011-2022 走看看