总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇

本文是Java IO总结系列篇的第3篇,前篇的访问地址如下:
本文为大家介绍Java IO-创建文件夹的四种方法,及其优缺点的解析。如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力。
1.传统API创建文件夹方式
Java传统的IO API种使用java.io.File类中的file.mkdir()和file.mkdirs()方法创建文件夹
file.mkdir()创建文件夹成功返回true,失败返回false。如果被创建文件夹的父文件夹不存在也返回false.没有异常抛出。file.mkdirs()创建文件夹连同该文件夹的父文件夹,如果创建成功返回true,创建失败返回false。创建失败同样没有异常抛出。
@Test
void testCreateDir1() {
//“D:\data111”目录现在不存在
String dirStr = "D:\\data111\\test";
File directory = new File(dirStr);
//mkdir
boolean hasSucceeded = directory.mkdir();
System.out.println("创建文件夹结果(不含父文件夹):" + hasSucceeded);
//mkdirs
hasSucceeded = directory.mkdirs();
System.out.println("创建文件夹结果(包含父文件夹):" + hasSucceeded);
}
输出结果如下:使用mkdir创建失败,使用mkdirs创建成功。
创建文件夹结果(不含父文件夹):false
创建文件夹结果(包含父文件夹):true
大家可以看到,mkdir和mkdirs虽然可以创建文件,但是它们在异常处理的环节做的非常不友好。创建失败之后统一返回false,创建失败的原因没有说明。是父文件夹不存在所以创建失败?还是文件夹已经存在所以创建失败?还是因为磁盘IO原因导致创建文件夹失败?
2. Java NIO创建文件夹
为了解决传统IO创建文件夹中异常失败处理问题不明确的问题,在Java的NIO中进行了改进。
2.1. Files.createDirectory创建文件夹
- 如果被创建文件夹的父文件夹不存在,则抛出
NoSuchFileException. - 如果被创建的文件夹已经存在,则抛出
FileAlreadyExistsException. - 如果因为磁盘IO出现异常,则抛出
IOException.
Path path = Paths.get("D:\\data222\\test");
Path pathCreate = Files.createDirectory(path);
2.2.Files.createDirectories创建文件夹及其父文件夹
- 如果被创建文件夹的父文件夹不存在,就创建它
- 如果被创建的文件夹已经存在,就是用已经存在的文件夹,不会重复创建,没有异常抛出
- 如果因为磁盘IO出现异常,则抛出
IOException.
Path path = Paths.get("D:\\data222\\test");
Path pathCreate = Files.createDirectorys(path);
另外大家要注意:NIO的API创建的文件夹返回值是Path,这样方便我们在创建完成文件夹之后继续向文件夹里面写入文件数据等操作。比传统IO只返回一个boolean值要好得多。
欢迎关注我的博客,里面有很多精品合集
- 本文转载注明出处(必须带连接,不能只转文字):字母哥博客。
觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。
- 《手摸手教你学Spring Boot2.0》
- 《Spring Security-JWT-OAuth2一本通》
- 《实战前后端分离RBAC权限管理系统》
- 《实战SpringCloud微服务从青铜到王者》
- 《VUE深入浅出系列》
总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇的更多相关文章
- Java遍历文件夹的两种方法(非递归和递归)
import java.io.File; import java.util.LinkedList; public class FileSystem { public static int num ...
- 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- Java创建文件夹
import java.io.File; public class Mkdirs { public static void main(String[] args) { /** *创建文件夹,如果路径不 ...
- Java创建文件夹、创建文件、上传文件,下载文件
1.创建文件夹 /** * 判断文件夹是否存在 * @param myPath */ public static void judeDirExists(File myPath) { if (!myPa ...
- Java 创建文件夹和文件,字符串写入文件,读取文件
两个函数如下: TextToFile(..)函数:将字符串写入给定文本文件: createDir(..)函数:创建一个文件夹,有判别是否存在的功能. public void TextToFile(fi ...
- java创建文件夹以及文件
java在创建文件的过程中如果改文件的路径不存在: 会出现下面这种情况 java.io.IOException: 系统找不到指定的路径. at java.io.WinNTFileSystem.crea ...
- Java 创建文件夹和文件
String path="D://my"; File folder=new File(path); if(!folder.exists() && !folder.i ...
- Java实现文件拷贝的4种方法.
原文地址:http://blog.csdn.net/ta8210/article/details/2073817 使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢? 最近看了看N ...
- Java获取文件Content-Type的四种方法
HTTP Content-Type在线工具 有时候我们需要获取本地文件的Content-Type,已知 Jdk 自带了三种方式来获取文件类型. 另外还有第三方包 Magic 也提供了API.Magic ...
随机推荐
- java动态代理——jvm指令集基本概念和方法字节码结构的进一步探究及proxy源码分析四
前文地址 https://www.cnblogs.com/tera/p/13336627.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...
- ios_UITextField-修改占位文字和光标的颜色,大小
一.设置占位文字的颜色 方法一:利用富文本 /** 手机号输入框 */ @property (weak, nonatomic) IBOutlet UITextField *phoneTextField ...
- python3.1for循环及应用
#给定范围,进行循环for i in range (0,5): print(i) #对序列进行遍历list1=[1,2,3,4,5]for i in list1: print(i+1) #对元组进行遍 ...
- Android Studio局部管理器
1.LinearLayout(线性布局) 该布局将其中的View子控件按照水平或者垂直方向排列.但是需要注意不管是水平还是竖直,对应的每一行或列都只能放一个控件. 线性布局两种排法: 从左到右:and ...
- C#LeetCode刷题之#628-三个数的最大乘积( Maximum Product of Three Numbers)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3726 访问. 给定一个整型数组,在数组中找出由三个数组成的最大乘 ...
- NodeJs nrm 和 nvm
nrm 和 nvm nrm (npm registry manager)是npm的镜像源管理工具 nvm (node version manager)是nodejs的版本管理工具 nrm # nrm ...
- Css 图片自适应
设置 CSS .container{ overflow:auto; } img{ width:100%; height:auto; overflow:hidden; } 设置 template < ...
- JavaScript基础-06-正则表达式
正则表达式 1. 正则表达式用于定义一些字符串的规则:计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来. 2. 创建正则表达式对象: var reg=new R ...
- windows下mongoDB的下载和安装
1.进入mongoDB官网,官网地址:https://www.mongodb.com 2. 点击Try free按钮,进入下载页面 3.点击download进行下载:下载完成如下图: 4.点击下载的 ...
- vue2和vue3的区别
一.常用命令 vue -V 查看本地 vue 版本 二.官方文档 3.0:https://cli.vuejs.org/zh/ 三.创建文件 3.0:vue create 进入工程文件夹,创建项目. 2 ...