zoukankan      html  css  js  c++  java
  • java 清空文件内容的两种方式

    1.情景展示

      有时候,我们需要这样一种场景:

      我们知道,在java中,往同一文件中写入内容,如果该文件已经有内容的话,将要写入的内容会自动拼接到原内容后面(不会破坏原文件内容)

      但是,如果我们不想保留原有内容的话,在写入内容之前需要进行内容清空,如何实现?

    2.方式一  推荐使用

    // 创建原文件对象
    final File file = new File("C:\Users\Marydon\Desktop\123-测试记录.txt");
    try {
        // 使用FileWriter不需要考虑原文件不存在的情况
        // 当该文件不存在时,new FileWriter(file)会自动创建一个真实存在的空文件
        FileWriter fileWriter = new FileWriter(file);
        // 往文件重写内容
        fileWriter.write("");// 清空
        fileWriter.flush();
        fileWriter.close();
        log.info("原文件内容清除完毕");
    } catch (IOException e) {
        e.printStackTrace();
    }  

      2021-05-21

      当文件处在使用中的时候,以*.log文件或者*.txt文件为例,不影响对文件内容的变更操作。

      之前的日志内容已被清空。 

    3.方式二

    // 创建原文件对象
    final File file = new File("C:\Users\Marydon\Desktop\123-测试记录.txt");
    // 方式二:删除原文件、创建新文件
    // 原文件存在即删除
    if(file.exists()) file.delete();
    
    try {
        // 创建新(空)文件(原文件不存在时,才会创建成功)
        file.createNewFile();
        log.info("文件已被重新创建");
    } catch (Exception e) {
        e.printStackTrace();
    }
    

      使用前提:原文件不能被其它地方或程序占用。

      无论什么样的文件,以日志文件为例,当项目启动后,指定将日志输出到sys.log中,此时,使用方式二将原文件删除,然后创建新文件的方式并不会生效。 

    注意:

      至于输入中文导致的乱码问题不在本文的处理范围内,创建文件的字符集由操作系统决定,详见文末推荐

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    mfc中的_T
    zmq的send
    c++内存相关函数
    如何运行linux shell程序
    Dockfile中的命令如何在.sh中执行
    Linux 错误: $' ': command not found
    实战ZeroMQ的PUSH/PULL推拉模式
    Servlet笔记
    进程控制块(PCB)
    Makefile规则介绍
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/14754074.html
Copyright © 2011-2022 走看看