`
feiruqueshui
  • 浏览: 6280 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

文件工具类

    博客分类:
  • java
 
阅读更多

废话不说直接上代码:

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文件工具类

    Java加载配置文件工具类

    这个"Java加载配置文件工具类"很可能是为了解决这个问题而创建的一个实用工具,帮助开发者更方便、高效地处理配置文件。配置文件通常以.properties或.xml格式存在,用于存储应用程序的参数、配置项等。 配置文件的...

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    上传文件工具类

    这个"上传文件工具类"显然提供了处理文件上传的功能,可能包括了文件的读取、验证、编码转换、异常处理等多个方面。下面我们将深入探讨这个主题,以及相关的关键知识点。 首先,`UploadFileUtils.java`很可能包含了...

    Android上传文件工具类

    Android上传文件工具类

    读取properties文件工具类

    这个"读取properties文件工具类"是为了简化程序中对`.properties`文件的读取操作而设计的。通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`...

    ZIP格式压缩文件工具类

    ZIP格式压缩文件工具类

    分片上传文件工具类FileInfoUtils

    分片上传文件工具类,对应文章为:https://blog.csdn.net/y534560449/article/details

    CreateFileUtil 创建文件工具类

    创建文件工具类 包含创建文件夹 文件 临时文件等

    java操作文件工具类

    文件工具类java操作文件工具类java操作文件工具类java操作文件工具类java操作文件工具类

    java 上传文件工具类 java 上传文件工具类

    java 上传文件工具类 java 上传文件工具类java 上传文件工具类 java 上传文件工具类java 上传文件工具类 java 上传文件工具类

    一个很全的java文件工具类

    每个程序员都应该有一套自己的工具类,这个工具类提供很全的java文件操作方法

    C# 文件工具类 文件读写 复制 删除 创建文件夹

    C# 文件工具类 实际项目使用 久经考验 文件读写 复制 删除 创建文件夹 判断文件扩展名等等

    一次代码重构之旅-快速读写xml文件工具类封装

    在描述中提到的博客文章“一次代码重构之旅-快速读写xml文件工具类封装”,作者分享了如何通过Java进行XML操作的优化,将原始的XML处理代码整合到一个工具类中,提供简洁易用的API。在阅读该博客文章的过程中,我们...

    java读写文件工具类

    大家可以不用在为操作文件发愁了! 小弟觉得这个工具类还不是很完善,高手在帮忙完善一下,别忘了共享出来哦!

    Android文件操作工具类

    文件操作工具类,包含生成保存,复制,删除,读取,获取文件名,获取文件列表等等,只有你想不到,没有你找不到的Android端工具类,复制到项目中可直接使用

    Zip4j文件工具类

    使用 net.lingala.zip4j包实现相关操作,相对于JDK自带的zip操作类,其不仅支持密码操作,更加简单方便,且不依赖其他类库。

    C# 造作XML文件工具类

    这是一个C#操作XML文件的工具类,基本上你要用的都给你写好了,直接使用

    java文件工具类

    实现文件的创建、删除、复制、压缩、解压以及目录的创建、删除、复制、压缩解压等功能

Global site tag (gtag.js) - Google Analytics