81,092
社区成员
发帖
与我相关
我的任务
分享
package file;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.PrintWriter;
/**
* java.io.file工具
*
* @author xiaodong.lee
*/
public class FileUtils {
/**
* 新建目录
*
* @param folderPath
* @author xiaodong.lee 2009-8-23
*/
public void creatFolder(String folderPath) {
try {
File file = new File(folderPath);
if (!file.exists()) {
file.mkdirs();
}
} catch (Exception e) {
System.out.println("create folder failed!");
e.printStackTrace();
}
}
/**
* 新建文件
*
* @param filePath
* @param fileContext
* @author xiaodong.lee 2009-8-23
*/
public void creatFile(String filePath, String fileContext) {
try {
if (filePath != null && !"".equals(filePath)) {
String folder = filePath
.substring(0, filePath.lastIndexOf("/"));
creatFolder(folder);
}
File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
if (fileContext != null && !"".equals(fileContext)) {
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.println(fileContext);
fileWriter.close();
printWriter.close();
}
} catch (Exception e) {
System.out.println("create file failed!");
e.printStackTrace();
}
}
/**
* 删除文件
*
* @param filePath
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteFile(String filePath) {
File file = new File(filePath);
Boolean flag = false;
if (file.isFile()) {
flag = file.delete();
}
return flag;
}
/**
* 删除空文件夹
*
* @param folderPath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteNullFolder(String folderPath) {
File file = new File(folderPath);
if (!file.isDirectory() || !file.exists()) {
System.out.println("路径不存在或者路径不是目录!");
return false;
}
File[] fileList = file.listFiles();
if (fileList.length > 0) {
return false;
}
file.delete();
return true;
}
/**
* 删除目录下所有目录
*
* @param folderPath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteAllFolder(String folderPath) {
File file = new File(folderPath);
if (!file.isDirectory() || !file.exists()) {
return false;
}
File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
File fileSon = fileList[i];
// 遍历判断是否为空目录,不是空目录删除目录下文件或目录
if (!deleteNullFolder(fileSon.toString())) {
deleteAllFolder(fileSon.toString());
deleteAllfiles(fileSon.toString());
fileSon.delete();
} else {
fileSon.delete();
}
}
}
return true;
}
/**
* 删除目录下所有文件
*
* @param filePath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteAllfiles(String filePath) {
File file = new File(filePath);
if (!file.isDirectory() || !file.exists()) {
return false;
}
File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
if (!fileList[i].isDirectory()) {
File fileSon = fileList[i];
if (fileSon.isFile()) {
deleteFile(fileSon.toString());
}
}
}
return true;
}
/**
* 删除目录下所有文件和目录
*
* @param filePath
* @author xiaodong.lee 2009-8-23
*/
public void deleteAll(String filePath) {
deleteAllfiles(filePath);
deleteAllFolder(filePath);
}
/**
* 复制目录下单个文件
*
* @param oldPass
* @param newPath
* @return
* @author xiaodong.lee 2009-8-24
*/
public Boolean copyFile(String oldPath, String newPath) {
try {
File file = new File(oldPath);
if (file.isDirectory()) {
return false;
}
if (file.exists()) {
FileInputStream inputStream = new FileInputStream(file);
FileOutputStream outputStream = new FileOutputStream(newPath);
BufferedInputStream reader = new BufferedInputStream(
inputStream);
int len = inputStream.available();
byte[] buffer = new byte[len];
reader.read(buffer, 0, len);
outputStream.write(buffer);
inputStream.close();
outputStream.close();
reader.close();
}
} catch (Exception e) {
System.out.println("copy file failed!");
e.printStackTrace();
}
return true;
}
/**
* 复制目录下所有文件和目录
*
* @param oldPath
* @param newPath
* @author xiaodong.lee 2009-8-24
*/
@SuppressWarnings("static-access")
public Boolean copyAllFile(String oldPath, String newPath) {
File file = new File(oldPath);
if (!file.exists()) {
return false;
}
if (file.isFile()) {
copyFile(oldPath, newPath);
return false;
}
File[] fileList = file.listFiles();
File mkdir = new File(newPath);
if (!mkdir.exists()) {
mkdir.mkdirs();
}
for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
copyAllFile(oldPath + fileList[i].separator
+ fileList[i].getName(), newPath
+ fileList[i].separator + fileList[i].getName());
} else {
copyFile(oldPath + fileList[i].separator
+ fileList[i].getName(), newPath
+ fileList[i].separator + fileList[i].getName());
}
}
return true;
}
}