import java.io.File;
import java.io.IOException;
/**
* 1、File类的CreateNewFile根据抽象路径创建一个新的空文件,当抽象路径指定的文件存在时创建失败
* 2、File类的mkdir方法根据抽象路径创建目录
* 3、File类的mkdirs方法根据抽象路径创建目录,包括创建必须但不存在的父目录
* 4、File类的createTempFile方法创建临时文件,可以指定临时文件的文件名前缀,后缀,以及文件所在的目录,如果不指定目录
* 则存放在系统临时文件夹下
* 5、除了mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则创建失败
* */
public class CreateFileUtil {
/**
* 创建单个文件
* @param destFileName 目标文件名
* @return 创建成功,返回true,否则返回false
* */
public static boolean createFile(String destFileName){
File file = new File(destFileName);
if(file.exists()){
System.out.println("创建单个文件"+destFileName+"失败,目标文件已经存在!");
return false;
}
if(destFileName.endsWith(File.separator)){
System.out.println("创建单个文件"+destFileName+"失败,目标文件不能是目录!");
return false;
}
//判断目标文件所在的目录是否存在
if(!file.getParentFile().exists()){
//如果不存在,则创建父目录
System.out.println("目标文件所在的目录不存在,准备创建它!");
if(!file.getParentFile().mkdirs()){
System.out.println("创建目标文件所在的目录失败!");
}
}
//创建目标文件
try {
if(file.createNewFile()){
System.out.println("创建单个文件"+destFileName+"成功!");
return true;
}else{
System.out.println("创建单个文件"+destFileName+"失败!");
return false;
}
}catch(IOException e){
e.printStackTrace();
System.out.println("创建单个文件"+destFileName+"失败,目标目录已经存在!");
return false;
}
}
/**
* 创建目录
* @param destDirName 目标目录名
* @return 目标创建成功返回true,创建失败返回false
*
* */
public static boolean createDir(String destDirName){
File dir = new File(destDirName);
if(dir.exists()){
System.out.println("创建目录"+destDirName+"失败,目标目录已经存在!");
return false;
}
if(!destDirName.endsWith(File.separator)){
destDirName = destDirName + File.separator;
}
//创建目标目录
if(dir.mkdirs()){
System.out.println("创建目录"+destDirName+"成功!");
return true;
}else{
System.out.println("创建目录"+destDirName+"失败!");
return false;
}
}
/**
* 创建临时文件
* @param prefix 临时文件名的前缀
* @param suffix 临时文件名的后缀
* @param dirName 临时文件所在的目录,如果输入null,则在用户的文档目录下创建临时文件
* @return 临时文件创建成功返回true,否则返回false
* */
public static String createTempFile(String prefix,String suffix,String dirName){
File tempFile = null;
if(dirName == null){
try{
//在默认文件夹下创建临时文件
tempFile = File.createTempFile(prefix, suffix);
//返回临时文件的路径
return tempFile.getCanonicalPath();
}catch(IOException e){
e.printStackTrace();
System.out.println("创建临时文件失败!"+e.getMessage());
return null;
}
}else{
File dir = new File(dirName);
//如果临时文件目录不存在,首先创建
if(!dir.exists()){
if(CreateFileUtil.createDir(dirName));
System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
return null;
}
try{
//在指定目录下创建临时文件
tempFile = File.createTempFile(prefix, suffix,dir);
return tempFile.getCanonicalPath();
}catch(IOException e){
e.printStackTrace();
System.out.println("创建临时文件失败!"+e.getMessage());
return null;
}
}
}
public static void main(String[] args) {
//创建目录
String dirName = "E:\\java练习1\\1";
CreateFileUtil.createDir(dirName);
//创建文件
String fileName = dirName + "temp2\\tempFile.txt";
CreateFileUtil.createFile(fileName);
//创建临时文件
String prefix = "temp";
String suffix = ".txt";
for(int i = 0;i<10;i++){
System.out.println("创建临时文件:"+CreateFileUtil.createTempFile(prefix, suffix, dirName));
}
}
}
|
|