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文件读写
  2. Android中图片的放大和缩小源码
  3. 实现Android图片圆角
  4. ANDROID轮播广告图片
  5. android listview 滚动时异步加载图片的问题
  6. Android读取XML文件(SAX)
  7. Android 数据存储与读取:文件
  8. Android 文件下载与解压缩

随机推荐

  1. android bluetooth开发基础-1
  2. 使用Docker编译Android系统内核
  3. Android其它新控件
  4. Android(安卓)服务器推送技术
  5. Eclipse 下配置Ionic 开发Android
  6. Android应用程序启动过程源代码分析
  7. Android(安卓)面试题集(2019-04-04总结)
  8. Android事件总线(一)EventBus3.0用法全解析
  9. 浅谈android的selector,背景选择器
  10. Android(安卓)adb shell学习心得(一)