package org.nit.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Random;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 文件工具类
*
* @author TangLei <justinlei@gmail.com>
* @date 2009-2-24
*/
public class FileUtil {
private static Log log = LogFactory.getLog(FileUtil.class);
private FileUtil() {}
/**
* 获取随机的文件名称
* @param seed 随机种子
* @return
*/
public static String getRandomFileName(String seed) {
byte[] ra = new byte[100];
new Random().nextBytes(ra);
StringBuilder build = new StringBuilder("");
for (int i = 0; i < ra.length; i++) {
build.append(Byte.valueOf(ra[i]).toString());
}
String currentDate = Long.valueOf(new Date().getTime()).toString();
seed = seed + currentDate + build.toString();
return EncryptUtils.getMD5ofStr(seed).toLowerCase();
}
/**
* 列出所有当前层的文件和目录
*
* @param dir 目录名称
* @return fileList 列出的文件和目录
*/
public static File[] ls(String dir) {
return new File(dir).listFiles();
}
/**
* 根据需要创建文件夹
*
* @param dirPath 文件夹路径
* @param del 存在文件夹是否删除
*/
public static void mkdir(String dirPath,boolean del) {
File dir = new File(dirPath);
if(dir.exists()) {
if(del)
dir.delete();
else return;
}
dir.mkdirs();
}
/**
* 删除文件和目录
*
* @param path
* @throws Exception
*/
public static void rm(String path) throws Exception{
if(log.isDebugEnabled())
log.debug("需要删除的文件: " + path);
File file = new File(path);
if(!file.exists()) {
if(log.isWarnEnabled())
log.warn("文件<" + path + ">不存在");
return;
}
if(file.isDirectory()) {
File[] fileList = file.listFiles();
if(fileList == null || fileList.length == 0) {
file.delete();
} else {
for (File _file : fileList) {
rm(_file.getAbsolutePath());
}
}
file.delete();
} else {
file.delete();
}
}
/**
* 移动文件
*
* @param source 源文件
* @param target 目标文件
* @param cache 文件缓存大小
* @throws Exception
*/
public static void mv(String source,String target,int cache) throws Exception {
if(source.trim().equals(target.trim()))
return;
byte[] cached = new byte[cache];
FileInputStream fromFile = new FileInputStream(source);
FileOutputStream toFile = new FileOutputStream(target);
while(fromFile.read(cached) != -1) {
toFile.write(cached);
}
toFile.flush();
toFile.close();
fromFile.close();
new File(source).deleteOnExit();
}
/**
* 把属性文件转换成Map
*
* @param propertiesFile
* @return
* @throws Exception
*/
public static final Map<String, String> getPropertiesMap(String propertiesFile) throws Exception{
Properties properties = new Properties();
FileInputStream inputStream = new FileInputStream(propertiesFile);
properties.load(inputStream);
Map<String, String> map = new HashMap<String, String>();
Set<Object> keySet = properties.keySet();
for (Object key : keySet) {
map.put((String)key, properties.getProperty((String)key));
}
return map;
}
@SuppressWarnings("unchecked")
public static final Map<String, String> getPropertiesMap(Class clazz,String fileName) throws Exception{
Properties properties = new Properties();
InputStream inputStream = clazz.getResourceAsStream(fileName);
if(inputStream == null)
inputStream = clazz.getClassLoader().getResourceAsStream(fileName);
properties.load(inputStream);
Map<String, String> map = new HashMap<String, String>();
Set<Object> keySet = properties.keySet();
for (Object key : keySet) {
map.put((String)key, properties.getProperty((String)key));
}
return map;
}
/**
* 把属性文件转换成Map
*
* @param inputStream
* @return
* @throws Exception
*/
public static final Map<String, String> getPropertiesMap(InputStream inputStream) throws Exception{
Properties properties = new Properties();
properties.load(inputStream);
Map<String, String> map = new HashMap<String, String>();
Set<Object> keySet = properties.keySet();
for (Object key : keySet) {
map.put((String)key, properties.getProperty((String)key));
}
return map;
}
/**
* 把文本文件转换成String
*
* @param fullPath
* @return
* @throws Exception
*/
public static String readFile(String fullPath) throws Exception{
BufferedReader reader = new BufferedReader(new FileReader(fullPath));
if(reader == null)
return null;
StringBuilder builder = new StringBuilder("");
String line = null;
while((line = reader.readLine()) != null) {
builder.append(line + "\n");
}
return builder.toString();
}
/**
* 获取资源文件流
*
* @param clazz
* @param name
* @return
*/
@SuppressWarnings("unchecked")
public static InputStream getResourceAsStream(Class clazz,String name) {
try {
InputStream inputStream = clazz.getResourceAsStream(name);
if(inputStream == null)
inputStream = clazz.getClassLoader().getResourceAsStream(name);
return inputStream;
} catch (Exception e) {
if(log.isWarnEnabled())
log.warn("获取资源文件失败", e);
return null;
}
}
}
分享到:
相关推荐
java文件工具类FileUtil 递归获取一个文件夹(及其子文件夹)下所有文件 获取扩展名 (doc/docx/jpg等) 判断是否是图片 判断是否是压缩包 是否是word文档 是否是excel
文件工具类FileUtil是一个专门为Android开发提供帮助的实用类,它能够简化对文件的操作,使得开发者能更专注于业务逻辑,而不必重复编写文件操作的代码。下面详细介绍FileUtil中包含的一些关键功能点: 1. 读取raw...
* FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /** * Read content from ...
public class FileUtil { /** * 新建目录 * @param folderPath String 如 c:/fqf * @return boolean */ public static void newFolder(String folderPath) { try { String filePath = folderPath; ...
Android文件操作工具类FileUtil详解 在Android开发中,文件操作是非常重要的一部分,涵盖了文件的获取、遍历、搜索、复制、删除、判断等多种功能。为了方便开发者更好地进行文件操作,今天我们将详细介绍Android...
通过自定义工具类`FileUtil`来封装常见的文件操作,可以极大地提高代码的可读性和维护性,同时简化实际开发中的文件处理流程。本文将基于提供的`FileUtil`部分代码示例,详细介绍如何利用此类进行文件的创建、删除等...
在Java编程中,`FileUtil`通常是一个自定义的工具类,用于封装常见的文件操作,以便在项目中方便地处理文件。这个类可以提供一系列静态方法,帮助开发者执行读写文件、创建、删除、移动、复制文件等任务,极大地提高...
在IT领域,文件操作是日常开发中的重要环节。"FileUtil"是一个基于Qt框架的库,专门用于处理各种类型的文件,包括CSV、DBF、...在实际项目中,可以根据需要选择相应的工具类,通过调用其方法来完成文件的读写和操作。
Java文件操作工具类fileUtil实例 Java文件操作工具类fileUtil实例是一个提供了多种文件操作方法的工具类,包括文件读取、增加、删除、修改、复制等操作。该工具类可以帮助开发者快速实现文件操作功能,提高开发效率...
fileutil工具类 处理文件流工具 private static File file; /** * 判断文件是否存在 * * @param path * 文件路径 * @return boolean */ public static boolean fileIsExists(String path) { if (path ==...
"C++文件操作工具类"是一个专门为C++开发者设计的实用工具,它简化了对文件进行读写、创建、删除等操作的过程。 首先,我们要理解C++中的文件操作基本概念。C++通过标准库中的`fstream`头文件提供了一套接口,允许...
在Java编程语言中,`FileUtil`类通常是由开发者自定义的一个工具类,用于封装对文件和目录的操作,以提供更便捷、安全的文件处理功能。这个类可能会包含各种静态方法,用来创建、读取、写入、删除、移动、复制文件...
创建文件工具类 包含创建文件夹 文件 临时文件等
FileUtil工具类主要处理文件和目录的操作,简化了Java的I/O操作。它可能包含如读取文件内容、写入文件、创建或删除文件/目录等方法。例如,`readFileToString`可以用来读取整个文件并返回一个字符串,而`...
在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。"MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的...
[工具类] 文件FileUtil.java [工具类] 通信客户端simpleClient.java [工具类] 通信服务端simpleServer.java [工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具TimeUtil.java [工具类] 连...
[工具类] 文件FileUtil.java [工具类] 通信客户端simpleClient.java [工具类] 通信服务端simpleServer.java [工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具TimeUtil.java [工具类] 连...
在Java编程中,文件工具类(FileUtil)是开发者经常使用的工具,用于处理与文件系统相关的操作。在MapReduce框架中,数据通常是以文件的形式存储在分布式文件系统中,如Hadoop的HDFS。因此,当运行MapReduce作业时,...