1.工具类

package cn.cmodes.common.utils;

import java.io.File;

import java.io.FileInputStream;

import java.text.DecimalFormat;

public class FileSizeUtil {

private static final String TAG=FileSizeUtil.class.getSimpleName();

public static final int SIZETYPE_B = ;//获取文件大小单位为B的double值

public static final int SIZETYPE_KB = ;//获取文件大小单位为KB的double值

public static final int SIZETYPE_MB = ;//获取文件大小单位为MB的double值

public static final int SIZETYPE_GB = ;//获取文件大小单位为GB的double值

/**

* 获取文件指定文件的指定单位的大小

*

* @param filePath 文件路径

* @param sizeType 获取大小的类型1为B、2为KB、3为MB、4为GB

* @return double值的大小

*/

public static double getFileOrFilesSize(String filePath, int sizeType) {

File file = new File(filePath);

long blockSize = ;

try {

if (file.isDirectory()) {

blockSize = getFileSizes(file);

} else {

blockSize = getFileSize(file);

}

} catch (Exception e) {

e.printStackTrace();

}

return FormetFileSize(blockSize, sizeType);

}

/**

* 调用此方法自动计算指定文件或指定文件夹的大小

*

* @param filePath 文件路径

* @return 计算好的带B、KB、MB、GB的字符串

*/

public static String getAutoFileOrFilesSize(String filePath) {

File file = new File(filePath);

long blockSize = ;

try {

if (file.isDirectory()) {

blockSize = getFileSizes(file);

} else {

blockSize = getFileSize(file);

}

} catch (Exception e) {

e.printStackTrace();

}

return formatFileSize(blockSize);

}

/**

* 获取指定文件大小

*/

private static long getFileSize(File file) throws Exception {

long size = ;

if (file.exists()) {

FileInputStream fis = null;

fis = new FileInputStream(file);

size = fis.available();

} else {

file.createNewFile();

}

return size;

}

/**

* 获取指定文件夹

*/

private static long getFileSizes(File f) throws Exception {

long size = ;

File flist[] = f.listFiles();

assert flist != null;

for (File file : flist) {

if (file.isDirectory()) {

size = size + getFileSizes(file);

} else {

size = size + getFileSize(file);

}

}

return size;

}

/**

* 转换文件大小

*/

public static String formatFileSize(long fileS) {

DecimalFormat df = new DecimalFormat("#.00");

String fileSizeString = "";

String wrongSize = "0B";

if (fileS == ) {

return wrongSize;

}

if (fileS < ) {

fileSizeString = df.format((double) fileS) + "B";

} else if (fileS < ) {

fileSizeString = df.format((double) fileS / ) + "KB";

} else if (fileS < ) {

fileSizeString = df.format((double) fileS / ) + "MB";

} else {

fileSizeString = df.format((double) fileS / ) + "GB";

}

return fileSizeString;

}/**

* 转换文件大小,指定转换的类型

*/

private static double FormetFileSize(long fileS, int sizeType) {

DecimalFormat df = new DecimalFormat("#.00");

double fileSizeLong = ;

switch (sizeType) {

case SIZETYPE_B:

fileSizeLong = Double.valueOf(df.format((double) fileS));

break;

case SIZETYPE_KB:

fileSizeLong = Double.valueOf(df.format((double) fileS / ));

break;

case SIZETYPE_MB:

fileSizeLong = Double.valueOf(df.format((double) fileS / ));

break;

case SIZETYPE_GB:

fileSizeLong = Double.valueOf(df.format((double) fileS / ));

break;

default:

break;

}

return fileSizeLong;

}

}

2.使用

/**

* 新增多媒体-图片

*

* @param mediaphoto 多媒体-图片信息

* @return 结果

*/

@Override

@Transactional

public int insertMediaphoto(Mediaphoto mediaphoto) {

if (StringUtils.isBlank(mediaphoto.getId())) {

mediaphoto.setId(IdGen.uuid());

}

mediaphoto.setCreateTime(new Date());

mediaphoto.setFileSize(fileService.formatFileSize(mediaphoto.getFileName()));int i = mediaphotoMapper.insertMediaphoto(mediaphoto);

searchService.UpdateResourceEs(mediaphoto.getDocumentId());

return i;

}

3.效果图

java上传文件大小转换(字节转kb&sol;mb&sol;gb)

/** * 字节转kb/mb/gb * @param size * @return */ public String getPrintSize(long size) { //如果字节数少于1024,则 ...

java上传大文件解决方案

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在10G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以10G来进行限制. 第一步: 前端修改 由于项目使用的是BJ ...

java上传视频文件

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

解决ASP&period;NET上传文件大小限制

第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRuntime节点对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大小.一.修改 ...

兼容各浏览器的js判断上传文件大小

由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 &lt ...

Web&period;Config文件配置之限制上传文件大小和时间

在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...

asp&period;net--解决上传文件大小限制

java 文件上传 大小_java 上传文件大小转换为 GB/MB/KB/B相关推荐

  1. java获取上传文件的大小_java 上传文件大小转换为 GB/MB/KB/B

    1.工具类 package cn.cmodes.common.utils; import java.io.File; import java.io.FileInputStream; import ja ...

  2. java b kb mb gb 转换_java 上传文件大小转换为 GB/MB/KB/B

    1.工具类 package cn.cmodes.common.utils; import java.io.File; import java.io.FileInputStream; import ja ...

  3. java 上传文件大小转换为 GB/MB/KB/B

     0. 知识补充概况 如4.56就是4.6,最后一位小数大于等于6就向前进一位.  4.54就是4.5,最后一位小数小于等于4,就舍去  4.45就是4.4 4.55就是4.6最后一位小数是5的时候, ...

  4. java上传加密_Java上传下载文件并实现加密解密

    使用 Jersey 服务器实现上传,使用 HTTP 请求实现下载 引入依赖 在 pom.xml 中添加 Jersey 相关依赖 com.sun.jersey jersey-client 1.18.1 ...

  5. java中比较两个文件的大小_Java实现获取文件大小的几种方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.i ...

  6. java文件传输连接方式_Java 学习笔记 网络编程 使用Socket传输文件 CS模式

    Socket的简单认识 Socket是一种面向连接的通信协议,Socket应用程序是一种C/S(Client端/Server端)结构的应用程序 Socket是两台机器间通信的端点. Socket是连接 ...

  7. java 文件压缩 解压_Java文件压缩与解压缩(一)

    package com.cn; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream ...

  8. java 文件路径怎么写_java本地文件路径怎么写

    1. java里文件路径怎么写 File file = new File("D:\\123.txt"); 你这种不用绝对路径是不行的, 只有一个方法,在web工程启动servlet ...

  9. java文件中查找字符串_Java 在本地文件中查找固定字符串

    适用范围:只适用于在文本文档中查找(如,txt.java.c等等,并不适用与doc.xls等等这些文件),可嵌套文件夹.但是对中文不支持. 例如:文件夹:F:/demo 子文件夹:F:/demo/er ...

最新文章

  1. mysql返回惟一不同值_SQL/MySQL-选择不同/唯一但返回所有列?
  2. Cannot identify version of git executable: no response
  3. 中国大陆开源镜像站汇总
  4. qt opencv cmake配置 单纯小白
  5. 安装brew提示/usr/local/bin is not in your PATH.
  6. Drools 5.1.1(一)
  7. 微带线特性阻抗计算公式_利用HFSS计算微带线的特性阻抗
  8. 王者荣耀交流协会第四次Scrum立会
  9. 【啃不完的算法导论】- 动态规划 - 最长公共子序列(概念篇)
  10. 系统架构师-基础到企业应用架构-系统建模[中篇](下)
  11. 前端-微信浏览器无法下载附件解决方法?
  12. ArcGis软件出图时修改色带上的刻度并导出色带
  13. python定义矩形类_Python3面向对象—点和矩形类
  14. 【FreeRTOS】
  15. linux终端界面美化,Ubuntu 18.04系统美化记录:Grub2\主题\登录界面\终端美化
  16. Computer Vision笔记01:图像处理
  17. 变量被重复定义的问题的讨论
  18. 易订货专属App文档
  19. echarts 柱状图圆柱_echarts柱状图
  20. 第四届CECC中国计算机教育大会召开,飞桨持续加码产教融合教育新生态

热门文章

  1. 我的HTML学习之路03
  2. 对话阿里巴巴副总裁贾扬清:追求大模型,并不是一件坏事
  3. 程序员大部分时间都在“熟悉系统”
  4. 25 个 Vue 技巧,开发了 5 年了,才知道还能这么用
  5. 谁说“IT 不理解 OT”?开放自动化来破局!
  6. JuiceFS 你应该知道的一些事
  7. 面向自动驾驶行业,Imagination推出性能高达600 TOPS的多核AI加速器
  8. Linux Kernel 5.8 发布,华为内核代码贡献全球持续领先
  9. 程序员常用的泛型机制究竟怎么玩?
  10. 探索处理数据新方法,8 个重点搞懂云数据库 DBaaS 到底是什么!