经常会遇见在创建某一目录时
因为其上一层目录即父目录不存在而抛出异常(指定文件路径不存在)
jdk中提供了创建目录的两种方法实现 mkdir() 和 mkdirs()
前者是在给定目录结构path参数下创建指定的目录,
如果path中少了一层目录没有创建则会抛出异常(FileNotFoundException)
而第二个方法,则是相对安全的实现,因为他会自动创建不存在的父级目录。
1、目录已经存在,创建文件夹
2、目录不存在,创建整个目录
因为其上一层目录即父目录不存在而抛出异常(指定文件路径不存在)
jdk中提供了创建目录的两种方法实现 mkdir() 和 mkdirs()
前者是在给定目录结构path参数下创建指定的目录,
如果path中少了一层目录没有创建则会抛出异常(FileNotFoundException)
而第二个方法,则是相对安全的实现,因为他会自动创建不存在的父级目录。
1、目录已经存在,创建文件夹
- public static void main(String [] args){
- String filePath = "d:/test1";
- File fp = new File(filePath);
- // 目录已存在创建文件夹
- if (!fp.exists()) {
- fp.mkdir();// 目录不存在的情况下,会抛出异常
- }
- System.out.println("执行结束"+filePath);
- }
2、目录不存在,创建整个目录
- public static void main(String [] args){
- String filePath = "d:/test1/test2/test3";
- File fp = new File(filePath);
- // 创建目录
- if (!fp.exists()) {
- fp.mkdirs();// 目录不存在的情况下,创建目录。
- }
- System.out.println("执行结束"+filePath);
- }
我在项目中用的第二种创建的目录
- 自己的代码
-
File dir=new File("d://Docod"); if(!dir.exists()) { dir.mkdirs(); } File f = new File(dir, now + "@Docid.txt"); saveToFile(f, docIdsStr, now); //文件下载功能
public static void saveToFile(File f, String docIdsStr, String now) { try { // 构建FileOutputStream对象,文件不存在会自动新建 FileOutputStream fop = new FileOutputStream(f); // 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbk OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8"); // 写入到缓冲区 writer.append(docIdsStr); //关闭写入流,同时会把缓冲区内容写入文件 writer.close(); // 关闭输出流,释放系统资源 fop.close(); } catch (Exception e) { e.printStackTrace(); } }