废话不说直接上代码:
package cn.java.sys.common.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.UUID; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; /** * 文件类 * * @author java * */ public abstract class FileUtil { /** * 删除文件夹(里面的文件一并删除) * * @param folderPath */ public static void delFolder(String folderPath) { try { delAllFile(folderPath); // 删除完里面所有内容 String filePath = folderPath; filePath = filePath.toString(); java.io.File myFilePath = new java.io.File(filePath); myFilePath.delete(); // 删除空文件夹 } catch (Exception e) { e.printStackTrace(); } } /** * 删除全部文件 * * @param path * @return */ private static boolean delAllFile(String path) { boolean flag = false; File file = new File(path); if (!file.exists()) { return flag; } if (!file.isDirectory()) { return flag; } String[] tempList = file.list(); File temp = null; for (int i = 0; i < tempList.length; i++) { if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); } else { temp = new File(path + File.separator + tempList[i]); } if (temp.isFile() && temp.exists()) { deleteFile(temp); } if (temp.isDirectory()) { delAllFile(path + "/" + tempList[i]); delFolder(path + "/" + tempList[i]); flag = true; } } return flag; } public static void deleteFile(String path) { File file = new File(path); deleteFile(file); } /** * 删除某个文件,若删除不成功,尝试十次 * * @param file */ public static void deleteFile(File file) { if (file.isFile() && file.exists()) { int tryCount = 0; boolean result = false; while (!result && tryCount++ < 10) { System.gc(); result = file.delete(); } } } // 获取文件的扩展名 public static String getExtension(String fileName) { if (fileName != null && fileName.length() > 0) { int i = fileName.lastIndexOf("."); if (i > -1 && i < (fileName.length() - 1)) { return fileName.substring(i + 1); } } return ""; } /** * * @param filePath 需要导出文件的路径 * @param response * @return 0 失败;1 成功 */ public static int downLoadFile(String filePath,HttpServletResponse response){ try { String fileName = ""; if (filePath.lastIndexOf("/") > 0) { fileName = new String(filePath.substring( filePath.lastIndexOf("/") + 1, filePath.length())); } else if (filePath.lastIndexOf("\\") > 0) { fileName = new String(filePath.substring( filePath.lastIndexOf("\\") + 1, filePath.length())); } File file = new File(filePath); if (file.exists()) { FileInputStream fis = new FileInputStream(file); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "utf-8")); response.setContentLength((int) file.length()); ServletOutputStream out = response.getOutputStream(); byte[] buffer = new byte[1024]; int temp; while ((temp = fis.read(buffer, 0, 1024)) > 0) { out.write(buffer, 0, temp); } fis.close(); return 1; } } catch (Exception e) { e.printStackTrace(); } return 0; } public static void downLoadFile(String fileName,String path ,HttpServletResponse response) throws IOException{ File file = new File(path); if (file.exists()) { FileInputStream fis = new FileInputStream(file); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "utf-8")); response.setContentLength((int) file.length()); ServletOutputStream out = response.getOutputStream(); byte[] buffer = new byte[1024]; int temp; while ((temp = fis.read(buffer, 0, 1024)) > 0) { out.write(buffer, 0, temp); } fis.close(); } } public static void main(String[] args) { System.out.println(File.separator+FileUtil.getExtension("1.gif")); System.out.println(UUID.randomUUID().toString()); } public String getFileEndName(String fileName) { int i = fileName.lastIndexOf(". "); String endName = ""; endName = fileName.substring(i + 1); return endName; } /** * 获取文件名,去掉文件后缀 * @param fileName 全文件名 * @return */ public static String getFileName(String fileName){ if (fileName != null && fileName.length() > 0) { int i = fileName.lastIndexOf("."); if (i > -1 && i < (fileName.length() - 1)) { String s = fileName.substring(0, i); return s; } } return ""; } /** * 压缩文件 * @param response * @param path 文件路径 * @throws Exception */ public static void compressFile(HttpServletResponse response,String path) throws Exception{ response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode("picture.zip", "utf-8")); } }
相关推荐
Java文件工具类
这个"Java加载配置文件工具类"很可能是为了解决这个问题而创建的一个实用工具,帮助开发者更方便、高效地处理配置文件。配置文件通常以.properties或.xml格式存在,用于存储应用程序的参数、配置项等。 配置文件的...
java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...
这个"上传文件工具类"显然提供了处理文件上传的功能,可能包括了文件的读取、验证、编码转换、异常处理等多个方面。下面我们将深入探讨这个主题,以及相关的关键知识点。 首先,`UploadFileUtils.java`很可能包含了...
Android上传文件工具类
这个"读取properties文件工具类"是为了简化程序中对`.properties`文件的读取操作而设计的。通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`...
ZIP格式压缩文件工具类
分片上传文件工具类,对应文章为:https://blog.csdn.net/y534560449/article/details
创建文件工具类 包含创建文件夹 文件 临时文件等
文件工具类java操作文件工具类java操作文件工具类java操作文件工具类java操作文件工具类
java 上传文件工具类 java 上传文件工具类java 上传文件工具类 java 上传文件工具类java 上传文件工具类 java 上传文件工具类
每个程序员都应该有一套自己的工具类,这个工具类提供很全的java文件操作方法
C# 文件工具类 实际项目使用 久经考验 文件读写 复制 删除 创建文件夹 判断文件扩展名等等
在描述中提到的博客文章“一次代码重构之旅-快速读写xml文件工具类封装”,作者分享了如何通过Java进行XML操作的优化,将原始的XML处理代码整合到一个工具类中,提供简洁易用的API。在阅读该博客文章的过程中,我们...
大家可以不用在为操作文件发愁了! 小弟觉得这个工具类还不是很完善,高手在帮忙完善一下,别忘了共享出来哦!
文件操作工具类,包含生成保存,复制,删除,读取,获取文件名,获取文件列表等等,只有你想不到,没有你找不到的Android端工具类,复制到项目中可直接使用
使用 net.lingala.zip4j包实现相关操作,相对于JDK自带的zip操作类,其不仅支持密码操作,更加简单方便,且不依赖其他类库。
这是一个C#操作XML文件的工具类,基本上你要用的都给你写好了,直接使用
实现文件的创建、删除、复制、压缩、解压以及目录的创建、删除、复制、压缩解压等功能