创建文件不存在上级目录报错/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方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败
linux下的docker操作命令及异常