程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入门

  • 克隆

  • 类型转换

  • 日期时间

  • IO流相关

    • 日期时间工具 - `DateUtil`
    • 日期时间对象 - `DateTime`
    • 农历日期 - `ChineseDate`
    • LocalDateTime 工具类 - `LocalDateTimeUtil`
    • 计时器工具 - `TimeInterval`
    • 文件

      • 文件读取 - `FileReader`
      • 文件写入 - `FileWriter`
        • 文件追加 - `FileAppender`
        • 文件跟随 - `Tailer`
        • 文件名工具 - `FileNameUtil`
      • 资源

    • 工具类

    • 语言特性

    • JavaBean

    • 集合类

    • Map

    • Codec编码

    • 文本操作

    • 注解

    • 比较器

    • 异常

    • 数学

    • 线程和并发

    • 图片

    • 网络

    • 源码编译

    • 配置文件

    • 日志

    • 缓存

    • JSON

    • 加密解密

    • DFA查找

    • HTTP客户端

    • 定时任务

    • 扩展

    • 切面

    • 脚本

    • Office文档操作

    • 系统调用

    • 图形验证码

    • 网络Socket

    • JWT

    • Hutoll
    • IO流相关
    • 文件
    scholar
    2024-08-20
    目录

    文件写入 - FileWriter

    # 文件写入 - FileWriter

    简介

    FileWriter 是 Hutool 提供的一个方便的文件写入工具类,简化了文件内容的写入操作。它支持多种写入模式,如追加模式和覆盖模式,并且提供了将文件内容写入字节流或字符流的能力。FileWriter 提供的功能与 FileReader 类似,使得读写文件的操作更加直观和便捷。

    # 1. 写入文件内容

    FileWriter 提供了多种方法来写入文件内容,支持覆盖模式和追加模式。

    # 1.1 覆盖模式写入文件内容

    write 方法用于将内容写入文件,默认是覆盖模式,即每次写入时都会覆盖文件中已有的内容。

    import cn.hutool.core.io.file.FileWriter;
    
    public class FileWriterExample {
        public static void main(String[] args) {
            // 创建一个 FileWriter 对象,指定写入文件的路径
            FileWriter writer = new FileWriter("d:/test.properties");
    
            // 写入字符串到文件中,覆盖模式
            writer.write("test");
    
            // 输出完成提示
            System.out.println("内容已写入文件(覆盖模式)。");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    • FileWriter(String filePath):创建一个 FileWriter 对象,指定文件路径。

      • filePath:要写入的文件路径。
    • write(String content):将字符串内容写入文件,默认覆盖文件中已有内容。

      • content:要写入文件的字符串内容。

      作用: 用于将内容写入到指定文件中,每次写入都会覆盖已有内容。

      实际开发场景: 在需要生成配置文件或清除旧内容并写入新内容的场景下,使用覆盖模式写入文件。

    # 1.2 追加模式写入文件内容

    append 方法用于在文件末尾追加内容,不会覆盖文件中已有的内容。

    import cn.hutool.core.io.file.FileWriter;
    
    public class FileWriterExample {
        public static void main(String[] args) {
            // 创建一个 FileWriter 对象,指定写入文件的路径
            FileWriter writer = new FileWriter("d:/test.properties");
    
            // 追加字符串到文件末尾
            writer.append("test");
    
            // 输出完成提示
            System.out.println("内容已追加到文件。");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    • append(String content):将字符串内容追加到文件末尾,不覆盖已有内容。

      • content:要追加写入文件的字符串内容。

      作用: 用于在文件末尾追加内容,不影响文件中已有内容。

      实际开发场景: 在日志记录、追加数据到文件末尾等场景下,使用追加模式写入文件。

    # 2. 获取输出流或 Writer 对象

    除了直接写入文件内容,FileWriter 还提供了获取文件输出流、字符流 Writer 以及 PrintWriter 对象的能力,以支持更复杂的文件写入操作。

    # 2.1 获取文件输出流

    getOutputStream 方法用于获取文件的 OutputStream 对象,适合需要直接操作字节流的场景。

    import cn.hutool.core.io.file.FileWriter;
    
    import java.io.IOException;
    import java.io.OutputStream;
    
    public class FileWriterExample {
        public static void main(String[] args) {
            // 创建一个 FileWriter 对象
            FileWriter writer = new FileWriter("d:/test.txt");
    
            // 获取文件的 OutputStream 对象
            try (OutputStream outputStream = writer.getOutputStream()) {
                String content = "This is a test.";
                outputStream.write(content.getBytes());
                outputStream.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            // 输出完成提示
            System.out.println("内容已写入文件(使用 OutputStream)。");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    • getOutputStream():获取文件的 OutputStream 对象。

      • 返回值:OutputStream 对象,用于写入文件内容。

      作用: 用于获取文件的输出流,适合需要直接操作字节流的场景。

      实际开发场景: 在处理大文件、二进制数据或将文件内容传输到网络时,可以使用 getOutputStream 方法获取 OutputStream 对象。

    # 2.2 获取文件的 Writer 对象

    getWriter 方法用于获取文件的 Writer 对象,适合需要操作字符流的场景。

    import cn.hutool.core.io.file.FileWriter;
    
    import java.io.IOException;
    import java.io.Writer;
    
    public class FileWriterExample {
        public static void main(String[] args) {
            // 创建一个 FileWriter 对象
            FileWriter writer = new FileWriter("d:/test.txt");
    
            // 获取文件的 Writer 对象
            try (Writer charWriter = writer.getWriter()) {
                charWriter.write("This is a test.");
                charWriter.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            // 输出完成提示
            System.out.println("内容已写入文件(使用 Writer)。");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    • getWriter():获取文件的 Writer 对象。

      • 返回值:Writer 对象,用于写入文件内容。

      作用: 用于获取文件的字符流 Writer 对象,适合需要操作字符流的场景。

      实际开发场景: 当需要写入文本内容或逐字符处理文件内容时,可以使用 getWriter 方法获取 Writer 对象。

    # 2.3 获取文件的 PrintWriter 对象

    getPrintWriter 方法用于获取文件的 PrintWriter 对象,适合需要进行格式化输出的场景。

    import cn.hutool.core.io.file.FileWriter;
    
    import java.io.PrintWriter;
    
    public class FileWriterExample {
        public static void main(String[] args) {
            // 创建一个 FileWriter 对象
            FileWriter writer = new FileWriter("d:/test.txt");
    
            // 获取文件的 PrintWriter 对象
            try (PrintWriter printWriter = writer.getPrintWriter()) {
                printWriter.println("This is a test.");
                printWriter.printf("Current time: %s\n", System.currentTimeMillis());
            }
    
            // 输出完成提示
            System.out.println("内容已写入文件(使用 PrintWriter)。");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    • getPrintWriter():获取文件的 PrintWriter 对象。

      • 返回值:PrintWriter 对象,用于格式化输出内容到文件。

      作用: 用于获取文件的 PrintWriter 对象,适合需要进行格式化输出的场景。

      实际开发场景: 当需要将格式化内容(如日志、报告)输出到文件时,可以使用 getPrintWriter 方法获取 PrintWriter 对象。

    编辑此页 (opens new window)
    上次更新: 2024/12/28, 18:32:08
    文件读取 - `FileReader`
    文件追加 - `FileAppender`

    ← 文件读取 - `FileReader` 文件追加 - `FileAppender`→

    Theme by Vdoing | Copyright © 2019-2025 程序员scholar
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式