创建文件不存在上级目录报错/java创建文件夹或文件

如果 d:\upload\file\ 文件夹不存在,会报错

String strPath = "d:\\upload\\file\\2.mp3";
File file = new File(strPath);
if(!file.exists())){
  file.createNewFile();
}

以下会创建文件夹 d:\\upload\\file\\2.mp3\

String strPath = "d:\\upload\\file\\2.mp3";
File file = new File(strPath);
if(!file.exists())){
  file.file.mkdirs();
}

这段代码可以成功创建文件

String strPath = "d:\\upload\\file\\2.mp3";
File file = new File(strPath);
File fileParent = file.getParentFile();
if(!fileParent.exists()){
  fileParent.mkdirs();
}
file.createNewFile();

如果需要想某个txt文件写日志,又不知道文件是否存在,可以采用如下写法

public static void logVoucherError(String filePath, String log){
        FileWriter writer = null;  
        try{
            File file=new File(filePath);    
            File fileParent = file.getParentFile();
            if(!fileParent.exists()){
                fileParent.mkdirs();
            }
            if (!file.exists()) {
                file.createNewFile();
            }
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss:SSS");
            Date d = new Date();
           
            String content = formatter.format(d)+" "+ log;
            writer = new FileWriter(filePath, true);     
            writer.write(content);    
            writer.write("\r\n"); 
        }catch (Exception e) {
            e.printStackTrace();
        }finally {     
            try {     
                if(writer != null){  
                    writer.close();     
                }  
            } catch (Exception e) {     
                e.printStackTrace();     
            }     
        }   
    }

 

知识点补充:

创建文件和目录的关键技术点如下:

1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败

2、File类的mkdir方法根据抽象路径创建目录

3、File类的mkdirs方法根据抽象路径创建目录,包括创建不存在的父目录

4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定 目录,则存放在系统的临时文件夹下。

5、除 mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败

posted @ 2023-03-13 10:27  凉了记忆  阅读(247)  评论(0编辑  收藏  举报