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
- android 文件操作方法集合类分享
- android 文件操作方法集合类分享
- xml文件基本操作方法集合
- 封装Android文件基本操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- android中一些文件的操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Jquery Select操作方法集合
- Jquery Select操作方法集合
- 集合CollectionUtils的操作方法
- List集合元素操作方法
- Yii criteria操作方法集合
- 集合CollectionUtils的操作方法
- 几个指针变量的含义
- 练习课(1)
- perl 时间函数(timelocal,localtime,strftime)小用
- java----Java面向对象
- 将一段符合XML格式规范字符串插入已有XML文档当中
- android 文件操作方法集合类分享
- WebView加载swf
- linux安装字符集
- .net程序打包(自定义操作)
- C#获得CPU、主板和硬盘等的编号
- 单点登录系列之一 ---基础知识
- ASP.ENT 生成图片水印
- VS2010快捷键及设置
- Web App和Native App 谁将是未来