android.text.format.Formatter调用formatFileSize后返回负值的原因
来源:互联网 发布:mac系统语言代码 编辑:程序博客网 时间:2024/06/05 23:48
//获取磁盘状态对象StatFs statFs = new StatFs(file.getPath());int blockSize = statFs.getBlockSize();//获取一个扇区的大小int blockCount = statFs.getBlockCount();//获取总的扇区的个数int availableBlocks = statFs.getAvailableBlocks();//获取可用的扇区的个数String totalMem = Formatter.formatFileSize(this, blockSize * blockCount);//总空间String availableMem = Formatter.formatFileSize(this, blockSize * availableBlocks);
按照以上代码运行的时候,在有些内存比较大的手机上就会出现totalMem为负数,为什么呢?
因为 blockSize*blockCout后还会是int类型,但是乘积过大,已经不能够装下乘积的值,会出现溢出,得到的值已经是错误的了。将各个数的类型用long接收即可
如下:
//获取磁盘状态对象StatFs statFs = new StatFs(file.getPath());long blockSize = statFs.getBlockSize();//获取一个扇区的大小long blockCount = statFs.getBlockCount();//获取总的扇区的个数long availableBlocks = statFs.getAvailableBlocks();//获取可用的扇区的个数String totalMem = Formatter.formatFileSize(this, blockSize * blockCount);//总空间String availableMem = Formatter.formatFileSize(this, blockSize * availableBlocks);return "总内存:" + totalMem + " 可用内存:" + availableMem;
1 0
- android.text.format.Formatter调用formatFileSize后返回负值的原因
- Formatter.formatFileSize()原理?
- android.text.format.Formatter计算文件大小超方便的工具类
- 慎用text-indent的负值
- 慎用text-indent的负值
- gettimeofday 返回负值的问题
- android.text.format.DateFormat的使用
- 文件大小转换工具Formatter.formatFileSize(MainActivity.this, bitmap.getByteCount())
- 记录对String.format(Formatter().format())方法的总结
- android.text.format.DateFormat
- 小波滤波出现负值的原因
- Android活动间调用并且返回后的数据
- Android Activity调用Dialog后的返回值方法
- android的日期格式化 android.text.format.DateFormat类
- Android 中 Formatter 的使用
- 【ANDROID】Android 在oncreate() 方法中调用 findViewById 返回 null 问题的原因和解决方法
- Android调用系统照相机返回intent为空原因分析
- 关于android.text.format.DateFormat类中format()方法的用法
- html css 小计
- Android 全局监听判断有无网络
- BannerLayout的使用
- 说说IO(二)- IO模型
- rails中path和url有什么区别
- android.text.format.Formatter调用formatFileSize后返回负值的原因
- Mac系统显示与隐藏文件
- 如何在shell脚本中嵌入Oracle数据库操作
- 几种遍历对比
- Java5新特征之foreach语句使用总结
- NavigationView的使用
- 程序员的沟通之痛
- 说说IO(三)- IO性能的重要指标
- 算法提高 金明的预算方案