android 文件操作方法集合类分享

来源:互联网 发布:python 生成shell脚本 编辑:程序博客网 时间:2024/06/06 06:56

这个类整合了写文件,删除文件,复制文件,搜索文件,判断文件是否存在等,是对一些常用的功能进行封装了。

用于记录和方便以后使用。

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>();@Overrideprotected void onPostExecute(String result) {onFileListCallback.SearchFileListInfo(list);}@Overrideprotected String doInBackground(String... params) {// TODO Auto-generated method stubString 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);}}} elsescanSDCard(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>/cachereturn ctx.getCacheDir().getPath() + "/";    }    public static String getFilesDir(Context ctx) {// /data/data/<package name>/filesreturn 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;    }}

更多的移动互联网的发展趋势、app开发、移动互联网应用相关的资料请到互联网的一点事:www.yidin.net 留言

android QQ群:222392467

资料:

http://www.yidin.net/?p=8280

http://www.yidin.net/?p=9725


原创粉丝点击