file.mkdir()、file.mkdirs()和file.createNewFile()的区别

作者:EzreaLwj 时间:2023-12-18 10:18:52 

file.mkdir()创建单级文件夹,file.mkdirs()创建多级文件夹,file.createNewFile()创建的是一个文件。

下面通过一个demo来验证一下:

public class MainActivity extends AppCompatActivity {

@Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

Button btn = findViewById(R.id.btn);

btn.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               File internalFile = getCacheDir();
               String internalPath = internalFile.getPath();
               File file1 = new File(internalPath,"demo1");
               File file2 = new File(internalPath,"demo2/demo");
               File file3 = new File(internalPath,"demo3/demo");
               File file4 = new File(internalPath+"/demo3","demo4");
               file2.mkdir();
               file3.mkdirs();
               file4.mkdir();
               try {
                   file1.createNewFile();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }
       });
   }
}

页面布局上有个按钮,点击按钮创建文件,在点击之前先看一看应用内存的文件目录,好知道这个过程发生了啥,点击前目录如下:

file.mkdir()、file.mkdirs()和file.createNewFile()的区别

从目录中看到只有一个文件夹和两个文件,运行上面程序后我们来看看变化:

file.mkdir()、file.mkdirs()和file.createNewFile()的区别

从图中可以看到,file1调用方法file.createNewFile()创建的是一个文件;file2是一个多级目录调用file.mkdir()方法没有创建成功;file3也是一个多级目录调用方法file.mkdirs()方法创建成功;file4是和file2做对比的,以file3的父目录作为父目录调用方法file.mkdir()创建单级文件夹成功;最后我们再加两行代码看看多级目录使用file.createNewFile()方法能否创建成功:

File file5 = new File(internalPath,"demo5/demo");
file5.createNewFile();

file.mkdir()、file.mkdirs()和file.createNewFile()的区别

运行程序后文件目录并没有发现有新增的文件或文件夹。

来源:https://juejin.cn/post/7223673824529563704

标签:file.mkdir(),file.mkdirs(),file.createNewFile()
0
投稿

猜你喜欢

  • c#中文转unicode字符示例分享

    2022-05-26 05:07:47
  • C#词法分析器之词法分析的使用详解

    2022-01-26 04:22:13
  • springMVC实现图形验证码(kaptcha)代码实例

    2022-02-14 22:02:14
  • Android App中实现可以双击放大和缩小图片功能的实例

    2023-04-01 16:41:17
  • Java求字符串中出现次数最多的字符串以及出现次数

    2023-06-03 03:45:34
  • Java中启动线程start和run的两种方法

    2023-09-12 10:58:29
  • Android 高仿微信语音聊天页面高斯模糊(毛玻璃效果)

    2021-09-27 18:56:46
  • Springboot集成ClickHouse及应用场景分析

    2022-04-02 16:28:46
  • Spring整合Springmvc的相关介绍

    2022-03-30 10:47:08
  • Flutter开发技巧ListView去除水波纹方法示例

    2021-12-27 14:15:24
  • java实现http的Post、Get、代理访问请求

    2021-10-30 08:13:47
  • SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分页)

    2023-09-27 01:47:32
  • 深入讲解java线程与synchronized关键字

    2023-08-29 13:56:00
  • Java中线程状态+线程安全问题+synchronized的用法详解

    2023-08-23 08:38:07
  • 浅析C#中数组,ArrayList与List对象的区别

    2022-03-12 00:41:30
  • c# 通过经纬度查询 具体的地址和区域名称

    2023-08-15 11:41:53
  • Java图形用户界面设计(Swing)的介绍

    2022-08-23 03:29:37
  • 深入理解Java设计模式之状态模式

    2022-07-07 12:49:44
  • java内部类原理与用法详解

    2022-12-04 14:41:25
  • 一个Servlet是如何处理多个请求的?

    2023-01-18 11:19:32
  • asp之家 软件编程 m.aspxhome.com