Android本地文件管理类:

importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Environment;importandroid.util.Log;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileOutputStream;publicclassFileUtil{privatestaticfinalStringTAG="FileUtil";privateContextcontext;privateStringSRCPATH;privateStringTHUMBPATH;privatebooleanhasSD=false;/***单例模式*/publicFileUtil(Contextcontext){this.context=context;//判断是否含有SD卡hasSD=Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);StringrootPath=hasSD?(Environment.getExternalStorageDirectory().getPath()+File.separator+"Android"+File.separator+"data"+File.separator+SwitchAppTool.APPLICATION_ID+File.separator+"cache"+File.separator):(this.context.getFilesDir().getPath()+File.separator+"Android"+File.separator+"data"+File.separator+SwitchAppTool.APPLICATION_ID+File.separator+"cache"+File.separator);THUMBPATH=rootPath+"thumb"+File.separator;SRCPATH=rootPath+"src"+File.separator;Filesrc=newFile(SRCPATH),thumb=newFile(THUMBPATH);if(!src.exists()){src.mkdirs();}Log.e(TAG,src.getPath());if(!thumb.exists()){thumb.mkdirs();}Log.e(TAG,thumb.getPath());}privatestaticFileUtilinstance;publicstaticFileUtilgetInstance(Contextcontext){if(instance==null){instance=newFileUtil(context);}returninstance;}/***写文件到sdcard**@paramfileName*@parambm*@paramisThumb*@return*/publicbooleanwriteFileToSD(StringfileName,Bitmapbm,booleanisThumb){ByteArrayOutputStreambaos=newByteArrayOutputStream();bm.compress(Bitmap.CompressFormat.PNG,100,baos);//png类型byte[]datas=baos.toByteArray();returnwriteFileToSD(fileName,datas,isThumb);}/***将文件写入SD卡*/publicbooleanwriteFileToSD(StringfileName,byte[]datas,booleanisThumb){try{Filefile=newFile((isThumb?THUMBPATH:SRCPATH)+fileName);Log.e(TAG,"writeFileToSD[]:"+file.getPath());if(!file.exists()){file.createNewFile();//创建文件}FileOutputStreamstream=newFileOutputStream(file);stream.write(datas);stream.close();returntrue;}catch(Exceptione){Log.e(TAG,"writeFileToSD[]:Error"+e.getMessage());}returnfalse;}/***判断sdcard有没有文件或文件夹**@paramfileName*@return*/publicbooleanexistsSrc(StringfileName){booleanflag=newFile(SRCPATH+fileName).exists();Log.e(TAG,"existsSrc[]:"+SRCPATH+fileName+";result:"+flag);returnflag;}privatestaticCustomProgresscustomProgress=null;publicbooleanclear(Contextcontext){customProgress=CustomProgress.show(context,"loading...",false,null);FilesrcDir=newFile(SRCPATH);String[]children=srcDir.list();for(inti=0;i<children.length;i++){if(!newFile(srcDir,children[i]).delete()){returnfalse;}}FilethumbDir=newFile(THUMBPATH);children=thumbDir.list();for(inti=0;i<children.length;i++){if(!newFile(thumbDir,children[i]).delete()){returnfalse;}}customProgress.dismiss();returntrue;}publicbooleanexistsThumb(StringfileName){booleanflag=newFile(THUMBPATH+fileName).exists();Log.e(TAG,"existsThumb[]:"+THUMBPATH+fileName+";result:"+flag);returnflag;}/***读取文件*/privateBitmapreadSDFile(StringfileName,booleanisThumb){StringpathName=(isThumb?THUMBPATH:SRCPATH)+fileName;Bitmapbitmap=null;BitmapFactory.Optionsoptions=newBitmapFactory.Options();options.inJustDecodeBounds=true;//获取这个图片的宽和高,注意此处的bitmap为nullbitmap=BitmapFactory.decodeFile(pathName,options);options.inJustDecodeBounds=false;//设为false//重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds设为falsebitmap=BitmapFactory.decodeFile(pathName,options);//利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象returnbitmap;}publicBitmapreadSrcFile(StringfileName){returnreadSDFile(fileName,false);}publicBitmapreadThumbFile(StringfileName){returnreadSDFile(fileName,true);}publicStringgetSRCPATH(){returnSRCPATH;}publicStringgetTHUMBPATH(){returnTHUMBPATH;}}


更多相关文章

  1. android listview 滚动时异步加载图片的问题
  2. Android之File内部存储和File外部存储
  3. Android——实现清除应用缓存功能
  4. Android获取IMEI号
  5. Android多次加载bitmap后,提示内存溢出。可以在onDestroy中释放内
  6. android 反射解析xml文件成为java对象
  7. 获取sdcard文件
  8. 【Android】共享APK中的资源文件
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android应用程序消息处理机制(Looper、Han
  2. Android开发搭建环境
  3. 还在用 Windows 自带的搜索工具吗?你 out
  4. Android(安卓)触摸事件传递机制
  5. 同学,这里有份程序员校招总结等你来取 |
  6. Android(安卓)TextView长按复制的实现方
  7. 在ActionBar上添加搜索View
  8. Android(安卓)NDK开发之旅37--FFmpeg转码
  9. android rom 修改
  10. Android-view事件传递机制