Android 本地文件管理类
16lz
2021-01-23
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;}}
更多相关文章
- Android文件读写
- Android中图片的放大和缩小源码
- 实现Android图片圆角
- ANDROID轮播广告图片
- android listview 滚动时异步加载图片的问题
- Android读取XML文件(SAX)
- Android 数据存储与读取:文件
- Android 文件下载与解压缩