Java File.createNewFile方法起什么作用呢?

转自:

Java File.createNewFile方法起什么作用呢?

下文笔者讲述File.createNewFile方法的功能简介说明,如下所示:

createNewFile()方法的定义及功能说明:
      用于检测文件是否存在,如不存在时,则创建文件

createNewFile()语法: 
      public boolean createNewFile()
   返回
      返回文件是否存在,不存在则创建文件 
注意事项:
    当拒绝对文件写访问时,则会抛出SecurityException异常

创建文件的4种方法分享

try {
    File dir = new File("dir");    // 获取目录“dir”对应的File对象
    File file1 = new File(dir, "testFile1.txt");
    file1.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}
在“dir”目录(相对路径)下新建文件“testFile1.txt”。

try {
    File file2 = new File("dir", "testFile2.txt");
    file2.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}
在“dir”目录(相对路径)下新建文件“testFile2.txt”。

try {
    File file3 = new File("/test/test3.txt");   //linux创建文件
    //File file3 = new File("D:/dir/test3.txt");   windows创建文件
    file3.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}
新建文件“/test/test3.txt”(绝对路径)
在windows下可以通过以下代码新建文件"D:/dir/test3.txt"。

try {
    URI uri = new URI("file:/test/test3.txt"); 
    File file4 = new File(uri);
    file4.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用`createNewFile()`方法时,出现`Operation not permitted`异常通常是由于权限问题引起的。在Android 11系统中,即使你在代码中开启了权限,也可能出现这种异常。这可能是因为Android 11引入了一种叫做"Scoped Storage"的新存储模式,它对应用程序的文件访问进行了更严格的限制。具体来说,只有具有特定权限的应用程序才能够访问它们自己的应用专用目录以外的文件。这可能是为了增强应用程序的安全性和隐私保护。 为了解决这个问题,你可以尝试以下几种方法: 1. 确保你的应用程序已经获得了所需的权限。你可以在AndroidManifest.xml文件中添加相应的权限声明,或者在运行时请求用户授权。 2. 尝试将你的应用程序的targetSDK版本升级到30或更高。这样,你的应用程序将适应Android 11的"Scoped Storage"存储模式,并且可以更容易地访问文件。 3. 使用其他适用于Android 11的API来进行文件操作,例如使用`getExternalFilesDir()`获取应用程序的专用目录,或者使用`MediaStore` API来访问媒体文件。 如果以上方法都不起作用,那可能意味着Android 11的存储限制确实阻止了你的应用程序执行某些文件操作。在这种情况下,你可能需要重新评估你的应用程序的文件访问需求,并考虑使用更适合的解决方案。 总之,`Operation not permitted`异常可能是由于权限限制导致的,特别是在Android 11的"Scoped Storage"存储模式下。确保你的应用程序已获得所需的权限,并尝试使用适合Android 11的API进行文件操作,以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值