【BUG日记】【JAVA】把当前目录下的文件内容进行清空,权限不足。报错java.io.FileNotFoundException: xxx.txt 拒绝访问。

简介: 【BUG日记】【JAVA】把当前目录下的文件内容进行清空,权限不足。报错java.io.FileNotFoundException: xxx.txt 拒绝访问。

【有话先说】


笨蛋了,半天才知道原来是之前对这个文件进行了设置只可读...


【日期】


2022/3/5


【问题】


把当前目录下的文件内容,进行清空,权限不足。拒绝访问


并且出现报错:java.io.FileNotFoundException: \html\1.txt 拒绝访问。


微信截图_20220520114131.png


【原因】


之前对这个文件进行了设置只可读...


微信截图_20220520114143.png


【如何发现】


思考来思考去,其他文件也没问题的呀,最后一对比,一想起,才知道设置了只读...


【如何修复】


把只读的√去掉!!!


微信截图_20220520114153.png


【总结】


好好写bug, 天天找bug~


【代码分享】


public static void main(String[] args) {
    initFile("/html");
  }
  /**
   * 文件重新写内容
   * 
   * @Method: setTextFile
   * @author: nanfangzhe
   * @see: https://juejin.cn/user/2840793779295133
   * @date: 2022年3月5日
   * @param filePath
   */
  public static void setTextFile(String filePath, String text) {
    File file = new File(filePath);
    try {
      if (!file.exists() || !file.isFile()) { // 如果文件不存在
        return;
      } else {
        Writer w = new FileWriter(filePath, false);// 写入的文本不附加在原来的后面而是直接覆盖
        w.write(text); // 写空
        w.close();
      }
    } catch (Exception e) {
      System.out.println("-----------清空文件出错了!" + filePath + "-----------");
      e.printStackTrace();
    }
  }
  /**
   * 初始化文件
   * 
   * @Method: initFile
   * @author: nanfangzhe
   * @see: https://juejin.cn/user/2840793779295133
   * @date: 2022年3月5日
   */
  public static void initFile(String userFoldPath) { // 初始化当前下所有的文件
    File file = new File(userFoldPath); // 访问当前目录
    if (!file.isDirectory()) {
      return; // 返回
    }
    File[] dirFile = file.listFiles();
    for (File f : dirFile) { // 遍历当前目录下所有文件
      if (!f.isFile()) {// 不是文件跳过
        continue;
      }
      setTextFile(f.getPath(), "");
    }
  }


文章小尾巴


文章写作、模板、文章小尾巴可参考:《写作“小心思”》


  感谢你看到最后,最后再说两点~


  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。

  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~


  我是南方者,一个热爱计算机更热爱祖国的南方人。


  (文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)



目录
相关文章
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
15 2
|
6天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
18 2
|
15天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
17天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
25 4
|
19天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
4月前
|
Java 大数据
解析Java中的NIO与传统IO的区别与应用
解析Java中的NIO与传统IO的区别与应用
|
2月前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
|
3月前
|
Java 数据处理
Java IO 接口(Input)究竟隐藏着怎样的神秘用法?快来一探究竟,解锁高效编程新境界!
【8月更文挑战第22天】Java的输入输出(IO)操作至关重要,它支持从多种来源读取数据,如文件、网络等。常用输入流包括`FileInputStream`,适用于按字节读取文件;结合`BufferedInputStream`可提升读取效率。此外,通过`Socket`和相关输入流,还能实现网络数据读取。合理选用这些流能有效支持程序的数据处理需求。
46 2
|
3月前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。