package me.zhengjie.common.utils; import cn.hutool.core.util.IdUtil; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.text.DecimalFormat; /** * File工具类 * @author jie * @date 2018-12-27 */ public class FileUtil { /** * 定义GB的计算常量 */ private static final int GB = 1024 * 1024 * 1024; /** * 定义MB的计算常量 */ private static final int MB = 1024 * 1024; /** * 定义KB的计算常量 */ private static final int KB = 1024; /** * 格式化小数 */ private static final DecimalFormat DF = new DecimalFormat("0.00"); /** * MultipartFile转File * @param multipartFile * @return */ public static File toFile(MultipartFile multipartFile){ // 获取文件名 String fileName = multipartFile.getOriginalFilename(); // 获取文件后缀 String prefix="."+getExtensionName(fileName); File file = null; try { // 用uuid作为文件名,防止生成的临时文件重复 file = File.createTempFile(IdUtil.simpleUUID(), prefix); // MultipartFile to File multipartFile.transferTo(file); } catch (IOException e) { e.printStackTrace(); } return file; } /** * 删除 * @param files */ public static void deleteFile(File... files) { for (File file : files) { if (file.exists()) { file.delete(); } } } /** * 获取文件扩展名 * @param filename * @return */ public static String getExtensionName(String filename) { if ((filename != null) && (filename.length() > 0)) { int dot = filename.lastIndexOf(‘.‘); if ((dot >-1) && (dot < (filename.length() - 1))) { return filename.substring(dot + 1); } } return filename; } /** * Java文件操作 获取不带扩展名的文件名 * @param filename * @return */ public static String getFileNameNoEx(String filename) { if ((filename != null) && (filename.length() > 0)) { int dot = filename.lastIndexOf(‘.‘); if ((dot >-1) && (dot < (filename.length()))) { return filename.substring(0, dot); } } return filename; } /** * 文件大小转换 * @param size * @return */ public static String getSize(int size){ String resultSize = ""; if (size / GB >= 1) { //如果当前Byte的值大于等于1GB resultSize = DF.format(size / (float) GB) + "GB "; } else if (size / MB >= 1) { //如果当前Byte的值大于等于1MB resultSize = DF.format(size / (float) MB) + "MB "; } else if (size / KB >= 1) { //如果当前Byte的值大于等于1KB resultSize = DF.format(size / (float) KB) + "KB "; } else { resultSize = size + "B "; } return resultSize; } }
原文:https://www.cnblogs.com/tonggc1668/p/11218626.html