/***SD卡是否存在**@returntrue存在false不存在*/publicbooleanisSdExist(){booleansdCardExist=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);returnsdCardExist;}/***获得SD卡总大小*@parmsizeType:返回的SD卡大小的单位SIZETYPE_B,SIZETYPE_KB,SIZETYPE_MB,SIZETYPE_GB*@returndouble类型SD卡大小*/publicdoublegetSDTotalSize(intsizeType){if(isSdExist()){Filepath=Environment.getExternalStorageDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longtotalBlocks=stat.getBlockCount();returnFormetFileSize(blockSize*totalBlocks,sizeType);}return0;}/***获得SD卡总大小*@parmcontext上下文*@return*/publicStringgetSDTotalSize(Contextcontext){if(isSdExist()){Filepath=Environment.getExternalStorageDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longtotalBlocks=stat.getBlockCount();returnFormatter.formatFileSize(context,blockSize*totalBlocks);}return"";}/***获得SD卡剩余容量,即可用大小**@return*/publicdoublegetSDAvailableSize(intsizeType){if(isSdExist()){Filepath=Environment.getExternalStorageDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longavailableBlocks=stat.getAvailableBlocks();returnFormetFileSize(blockSize*availableBlocks,sizeType);}return0;}/***获得SD卡剩余容量,即可用大小**@return*/publicStringgetSDAvailableSize(Contextcontext){if(isSdExist()){Filepath=Environment.getExternalStorageDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longavailableBlocks=stat.getAvailableBlocks();returnFormatter.formatFileSize(context,blockSize*availableBlocks);}return"";}/***获取指定文件大小**@paramfile*@return*@throwsException*/@SuppressWarnings("resource")publiclonggetFileSize(Filefile)throwsException{longsize=0;if(file.exists()){FileInputStreamfis=null;fis=newFileInputStream(file);size=fis.available();}else{file.createNewFile();Log.e("获取文件大小","文件不存在!");}returnsize;}/***获取指定文件夹大小**@paramf*@return*@throwsException*/publiclonggetFileSizes(Filef)throwsException{longsize=0;Fileflist[]=f.listFiles();for(inti=0;i<flist.length;i++){if(flist[i].isDirectory()){size=size+getFileSizes(flist[i]);}else{size=size+getFileSize(flist[i]);}}returnsize;}/***获取指定文件的指定单位的大小**@paramfilePath文件路径*@paramsizeType获取大小的类型1为B、2为KB、3为MB、4为GB*@returndouble值的大小*/publicdoublegetFileOrFilesSize(StringfilePath,intsizeType){Filefile=newFile(filePath);if(!file.exists()){return0;}longblockSize=0;try{if(file.isDirectory()){blockSize=getFileSizes(file);}else{blockSize=getFileSize(file);}}catch(Exceptione){e.printStackTrace();Log.e("获取文件大小","获取失败!");}returnFormetFileSize(blockSize,sizeType);}publicstaticfinalintSIZETYPE_B=1;publicstaticfinalintSIZETYPE_KB=2;publicstaticfinalintSIZETYPE_MB=3;publicstaticfinalintSIZETYPE_GB=4;/***转换文件大小,指定转换的类型**@paramfileS*@paramsizeType*@return*/privatedoubleFormetFileSize(longfileS,intsizeType){DecimalFormatdf=newDecimalFormat("#.00");doublefileSizeLong=0;switch(sizeType){caseSIZETYPE_B:fileSizeLong=Double.valueOf(df.format((double)fileS));break;caseSIZETYPE_KB:fileSizeLong=Double.valueOf(df.format((double)fileS/1024));break;caseSIZETYPE_MB:fileSizeLong=Double.valueOf(df.format((double)fileS/1048576));break;caseSIZETYPE_GB:fileSizeLong=Double.valueOf(df.format((double)fileS/1073741824));break;default:break;}returnfileSizeLong;}/***创建文件**@parampath文件夹路径*@paramfileName文件名称*@return*/publicFilegetOutFile(Stringpath,StringfileName){if(!isSdExist()){returnnull;}if(path!=null){FilemediaStorageDir=newFile(path);if(!mediaStorageDir.exists()){if(!mediaStorageDir.mkdirs()){returnnull;}}}Filef=newFile(path+fileName);if(!f.exists()){try{f.createNewFile();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}returnf;}/***向已创建的文件中写入数据*@paramstr写入内容*@paramfileName文件名称*/@SuppressLint("SimpleDateFormat")publicvoidprint(Stringstr,StringfileName){//获取SD卡剩余大小doublesdSize=getSDAvailableSize();if(sdSize<3){return;}FileWriterfw=null;BufferedWriterbw=null;Stringdatetime="";try{SimpleDateFormattempDate=newSimpleDateFormat("yyyy-MM-dd"+""+"hh:mm:ss");datetime=tempDate.format(newjava.util.Date()).toString();//插入日期时间fw=newFileWriter(filenameTemp,true);////创建FileWriter对象,用来写入字符流bw=newBufferedWriter(fw);//将缓冲对文件的输出Stringmyreadline="["+datetime+"]"+str+"\n";bw.write(myreadline);//写入文件bw.newLine();bw.flush();//刷新该流的缓冲bw.close();fw.close();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();try{bw.close();fw.close();}catch(IOExceptione1){//TODOAuto-generatedcatchblock}}}/***获得机身内存总大小**@return*/publicStringgetRomTotalSize(Contextcontext){Filepath=Environment.getDataDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longtotalBlocks=stat.getBlockCount();returnFormatter.formatFileSize(context,blockSize*totalBlocks);}/***获得机身内存总大小*@parmsizeType返回大小的单位*@return*/publicdoublegetRomTotalSize(intsizeType){Filepath=Environment.getDataDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longtotalBlocks=stat.getBlockCount();returnFormetFileSize(blockSize*totalBlocks,sizeType);}/***获得机身可用内存**@return*/privateStringgetRomAvailableSize(Contextcontext){Filepath=Environment.getDataDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longavailableBlocks=stat.getAvailableBlocks();returnFormatter.formatFileSize(context,blockSize*availableBlocks);}/***获得机身可用内存**@return*/privatedoublegetRomAvailableSize(intesizeType){Filepath=Environment.getDataDirectory();StatFsstat=newStatFs(path.getPath());longblockSize=stat.getBlockSize();longavailableBlocks=stat.getAvailableBlocks();returnFormetFileSize(blockSize*availableBlocks,sizeType);}


更多相关文章

  1. Android RadioButton 图片位置和大小
  2. android input系统如何导入kl文件
  3. Android创建XMl文件
  4. android 读取SD卡或者其他地方文件功能函数
  5. android通过servlet服务器保存文件到手机
  6. Android TabLayout设置选中状态标题字体大小,粗细
  7. Android 文件选择器,单选,多选
  8. Android利用TTF文件设置字体
  9. android 保存bitmap到指定文件

随机推荐

  1. 【Android】高仿大众点评中的范围选择控
  2. Android中Handler的正确使用
  3. AES在Android、JAVA端正常加密解密
  4. android studio使用volley发送post和get
  5. Android从外部API获取json数据并以listvi
  6. Android电源管理-休眠简要分析
  7. Android中自定义checkbox样式
  8. Android(安卓)Studio导入项目错误之Gradl
  9. android 自动换行FlowLayout
  10. android 细节之android.view.InflateExce