黑马程序员技术交流社区

标题: 使用文件创建文件和目录,非常全非常好的方法! [打印本页]

作者: 仲德明    时间: 2015-6-9 18:51
标题: 使用文件创建文件和目录,非常全非常好的方法!
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));
                }               
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2