当前位置: 首页 > news >正文

【IO流】FileWrite字符输出流

FileWrite字符输出流

    • 1. 概述
    • 2. 作用
    • 3. 方法
    • 4. 细节
    • 5. 代码示例
    • 6. 注意事项

1. 概述

java.io.FileWriter 类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
FileWriter 是用于写入字符数据到文件的字符输出流。

2. 作用

  1. 写入字符数据FileWriter 可以将字符数据写入到文件中。通过 write() 方法,可以逐个字符或批量字符(字符数组、字符串)地向文件写入数据。

  2. 创建新文件:如果指定的文件不存在,FileWriter 在默认情况下会创建一个新的文件,并将字符数据写入其中。这为创建和写入新的文本文件提供了便利。

  3. 追加写入:除了默认覆盖写入外,FileWriter 还支持以追加写入的方式将字符数据添加到已有文件的末尾。通过指定构造方法中的 append 参数为 true,可以实现追加写入的功能。

  4. 文本文件处理FileWriter 常用于处理文本文件,例如写入日志信息、配置文件、文本内容等。它提供了一种简单而有效的方式,用于操作和修改文本文件的内容。

  5. 字符数据流处理FileWriter 继承自 Writer 类,因此除了写入字符数据到文件外,还可以应用 Writer 提供的其他方法来处理字符数据流,如刷新缓冲区、关闭流等操作。

  6. 字符编码指定:通过构造方法可以指定字符编码,以确保在文件写入和读取时所用的字符编码一致,防止出现乱码等问题。

  7. 资源释放:在完成文件写入操作后,应该及时调用 close() 方法关闭 FileWriter,释放相关资源,避免资源泄露和文件锁定问题。

3. 方法

  • 构造方法

    构造方法说明
    public FileWriter(File file)创建字符输出流关联本地文件
    public FileWriter(String pathname)创建字符输出流关联本地文件
    public FileWriter(File file, boolean append)创建字符输出流关联本地文件,续写
    public FileWriter(String pathname, boolean append)创建字符输出流关联本地文件,续写
  1. public FileWriter(File file)

    • 说明: 创建字符输出流关联本地文件。
  2. public FileWriter(String pathname)

    • 说明: 创建字符输出流关联本地文件。
  3. public FileWriter(File file, boolean append)

    • 说明: 创建字符输出流关联本地文件,并选择是否续写模式。
  4. public FileWriter(String pathname, boolean append)

    • 说明: 创建字符输出流关联本地文件,并选择是否续写模式。
  • 成员方法

    成员方法说明
    void write(int c)写出一个字符
    void write(String str)写出一个字符串
    void write(String str, int off, int len)写出一个字符串的一部分
    void write(char[] cbuf)写出一个字符数组
    void write(char[] cbuf, int off, int len)写出字符数组的一部分
  1. void write(int c)

    • 说明: 写出一个字符。
    • 示例:
      FileWriter writer = new FileWriter("output.txt");
      writer.write('A');
      writer.close();
      
  2. void write(String str)

    • 说明: 写出一个字符串。
    • 示例:
      FileWriter writer = new FileWriter("output.txt");
      writer.write("Hello, FileWriter!");
      writer.close();
      
  3. void write(String str, int off, int len)

    • 说明: 写出一个字符串的一部分。
    • 示例:
      FileWriter writer = new FileWriter("output.txt");
      String str = "Hello, FileWriter!";
      writer.write(str, 0, 5); // 写出 "Hello"
      writer.close();
      
  4. void write(char[] cbuf)

    • 说明: 写出一个字符数组。
    • 示例:
      FileWriter writer = new FileWriter("output.txt");
      char[] cbuf = {'H', 'e', 'l', 'l', 'o'};
      writer.write(cbuf);
      writer.close();
      
  5. void write(char[] cbuf, int off, int len)

    • 说明: 写出字符数组的一部分。
    • 示例:
      FileWriter writer = new FileWriter("output.txt");
      char[] cbuf = {'H', 'e', 'l', 'l', 'o'};
      writer.write(cbuf, 0, 3); // 写出 "Hel"
      writer.close();
      

4. 细节

FileWriter书写细节

  1. 创建字符输出流对象
    • 细节1:参数是字符串表示的路径或者File对象都是可以的

    • 细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的

    • 细节3:如果文件已经存在,则会清空文件,如果不想清空可以打开续写开关

  2. 写数据
    • 细节: 如果write方法的参数是整数,但是实际上写到本地文件中的是整数在字符集上对应的字符
  3. 释放资源
    • 细节:每次使用完流之后都要释放资源

5. 代码示例

  • 代码示例
    package text.IOStream.FileWrite.FileWrite01;import java.io.FileWriter;
    import java.io.IOException;/* FileWriter
    FileWriter构造方法
    | 构造方法                                          | 说明                             |
    | ------------------------------------------------- | -------------------------------- |
    | public Filewriter(File file)                      | 创建字符输出流关联本地文件       |
    | public FileWriter(string pathname)                | 创建字符输出流关联本地文件       |
    | public FileWriter(File file, boolean append)      | 创建字符输出流关联本地文件,续写 |
    | public FileWriter(string pathname,boolean append) | 创建字符输出流关联本地文件,续写 |FileWriter成员方法
    | 成员方法                               | 说明                   |
    | -------------------------------------- | ---------------------- |
    | void write(int c)                      | 写出一个字符           |
    | void write(string str)                 | 写出一个字符串         |
    | void write(string str,int off,int len) | 写出一个字符串的一部分 |
    | void write(char[] cbuf)                | 写出一个字符数组       |
    | void write(char[lcbuf,int off,int len) | 写出字符数组的一部分   |FileWriter书写细节
    1.创建字符输出流对象细节1:参数是字符串表示的路径或者File对象都是可以的细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的细节3:如果文件已经存在,则会清空文件,如果不想清空可以打开续写开关
    2.写数据细节: 如果write方法的参数是整数,但是实际上写到本地文件中的是整数在字符集上对应的字符
    3.释放资源细节:每次使用完流之后都要释放资源*/
    public class FileWrite01 {public static void main(String[] args) throws IOException {//创建对象FileWriter fw = new FileWriter("D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileWrite\\FileWrite01\\a.txt");//读取数据fw.write("祝愿大家成功上岸!");//释放资源fw.close();}
    }
  • 输出结果
    在这里插入图片描述

6. 注意事项

  1. 字符输出流与本地文件之间的字符编码关系:字符输出流将字符写入文件时,使用的是系统默认的字符编码。如果需要指定特定的字符编码,可以考虑使用 OutputStreamWriter 包装 FileWriter。

  2. 写出字符时的数据处理:在写出字符数据时,要注意数据的处理方式,可以一次写出一个字符、一个字符串、一个字符数组等,确保数据写入文件的正确性。

  3. 文件路径及文件权限:要确保指定的文件路径正确且有相应的文件权限,否则可能导致文件写入失败。

  4. 文件续写操作:如果需要在已有文件的基础上进行续写操作,可以使用带有 boolean 参数的构造方法来指定是否是续写模式。

  5. 关闭流资源:在使用完字符输出流后,务必关闭流资源,以释放系统资源并确保数据写入文件。可以使用 try-with-resource 语句来自动关闭资源。

  6. 异常处理:在使用 FileWriter 时,要考虑可能出现的 IO 异常情况,合理处理异常以确保程序的稳定性和可靠性。

http://www.lryc.cn/news/307121.html

相关文章:

  • WPF 【十月的寒流】学习笔记(1):DataGrid过滤
  • 当Vue项目启动后,通过IP地址方式在相同网络段的其他电脑上无法访问前端页面?
  • native sql -ABAP开发从入门到精通笔记
  • C++完美转发【gpt】
  • C++之类和对象(2)
  • 时间序列分析实战(四):Holt-Winters建模及预测
  • Springboot之集成MongoDB无认证与开启认证的配置方式
  • BLEU: a Method for Automatic Evaluation of Machine Translation
  • 代码随想录算法训练营|day42
  • vscode与vue/react环境配置
  • Vue前端对请假模块——请假开始时间和请假结束时间的校验处理
  • 搭建freqtrade量化交易机器人
  • php伪协议 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)
  • 1.1_1 计算机网络的概念、功能、组成和分类
  • pytorch中的各种计算
  • 大数据技术之 Kafka
  • 【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)
  • CentOS删除除了最近5个JAR程序外的所有指定Java程序
  • 面试redis篇-13Redis为什么那么快
  • python Matplotlib Tkinter--pack 框架案例
  • 连接未来:嵌入式系统在物联网时代的应用
  • 自动驾驶中的障碍物时间对齐法
  • 介绍 PIL+IPython.display+mtcnn for 音视频读取、标注
  • C语言中strstr函数的使用!
  • Vue项目中,src目录下的vue.app文件介绍
  • 【Android】坐标系
  • OSCP靶场--Slort
  • 大数据职业技术培训包含哪些
  • 【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)
  • TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑