JAVA中的FileWriter流解析

 更新时间:2023年10月16日 09:28:08   作者:咕噜是个大胖子  
这篇文章主要介绍了JAVA中的FileWriter流解析,FileWriter类提供了多种写入字符的方法,包括写入单个字符、写入字符数组和写入字符串等,它还提供了一些其他的方法,如刷新缓冲区、关闭文件等,需要的朋友可以参考下

一、FileWriter流

API说明:用于编写字符文件的便捷类, 此类的构造函数假定默认字符编码和默认字节缓冲区大小是可接受的,要自己指定这些值,请在FileOutputStream上构造OutputStreamWriter。 文件是否可用或是否可以创建取决于底层平台。 特别是某些平台允许一次只打开一个FileWriter(或其他文件写入对象)来写文件。 在这种情况下,如果涉及的文件已经打开,则此类中的构造函数将失败。 FileWriter用于编写字符流。 要编写原始字节流,请考虑使用FileOutputStream

1)编写字符文件的便捷类怎么理解?

专用于输出字符数据到文件的便捷类,如输出多个中文等用此类

2)此类的构造函数假定默认字符编码和默认字节缓冲区大小是可接受的怎么理解?

此类构造函数中有设置默认字符编码以及该类有一个常量代表字节缓冲区大小

3)自己指定这些值,请在FileOutputStream上构造OutputStreamWriter?

说明父类OutputStreamWriter对象的构造方法中有利用字节输出流FileOutputStream作为参数以及可以设置指定的字符编码

public class FileWriter extends OutputStreamWriter

二、FileWriter流构造方法

1)通过给定的File对象构造FileWriter类对象:

本质是利用File对象然后构造FileOutputStream对象再调用父类的构造方法,注意并未有关字符集和缓冲区大小的设置

    public FileWriter(File file) throws IOException {
        super(new FileOutputStream(file));
    }

2)通过给定File对象的构造FileWriter对象, 如果第二个参数为true,则字节将写入文件的末尾而不是开头即是追加内容而非覆盖

本质是利用File对象然后构造FileOutputStream对象再调用父类的构造方法注意并未有关字符集和缓冲区大小的设置

    public FileWriter(File file, boolean append) throws IOException {
        super(new FileOutputStream(file, append));
    }

3)通过给定的文件名构造FileWriter对象:本质与第一个构造方法一致

    public FileWriter(String fileName) throws IOException {
        super(new FileOutputStream(fileName));
    }

4)通过给定的文件名构造FileWriter对象, 如果第二个参数为true,则字节将写入文件的末尾而不是开头即是追加内容而非覆盖

本质是与第二个构造方法一致

    public FileWriter(String fileName, boolean append) throws IOException {
        super(new FileOutputStream(fileName, append));
    }

三、FileWriter流API

FileWriter的API中只有5个构造方法,且本质都是调用的父类OutputStreamWriter的构造方法,因此若需要了解FileWriter的构造方法,我们需要了解OutputStreamWriter类

OutputStreamWriter是从字符流到字节流的桥接:使用指定的字符集将写入其中的字符编码为字节。它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。

每次调用write()方法都会导致在给定字符上调用编码转换器。生成的字节在写入底层输出流之前在缓冲区中累积。可以指定此缓冲区的大小,但默认情况下,它足够大,可用于大多数用途。

请注意,传递给write()方法的字符不会被缓冲。

到此这篇关于JAVA中的FileWriter流解析的文章就介绍到这了,更多相关FileWriter流解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 配置log 将日志信息输出到指定日志文件中

    Java 配置log 将日志信息输出到指定日志文件中

    这篇文章主要介绍了Java 配置log 将日志信息输出到指定日志文件中,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • Java中Stringbuild,Date和Calendar类的用法详解

    Java中Stringbuild,Date和Calendar类的用法详解

    这篇文章主要为大家详细介绍了Java中Stringbuild、Date和Calendar类的用法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-04-04
  • Java环境中MyBatis与Spring或Spring MVC框架的集成方法

    Java环境中MyBatis与Spring或Spring MVC框架的集成方法

    和MyBatis类似,Spring或者Spring MVC框架在Web应用程序的运作中同样主要负责处理数据库事务,这里我们就来看一下Java环境中MyBatis与Spring或Spring MVC框架的集成方法
    2016-06-06
  • Java中如何用Stream分组并求各组数量

    Java中如何用Stream分组并求各组数量

    这篇文章主要给大家介绍了关于Java中如何用Stream分组并求各组数量的相关资料,文中通过实例代码,对大家学习或者Java具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Java程序快速合并多个Word(docx)文档

    Java程序快速合并多个Word(docx)文档

    这篇文章主要为大家介绍了如何使用Java程序快速合并多个Word(docx)文档实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Java并发编程之详解CyclicBarrier线程同步

    Java并发编程之详解CyclicBarrier线程同步

    在之前的文章中已经为大家介绍了java并发编程的工具:BlockingQueue接口,ArrayBlockingQueue,DelayQueue,LinkedBlockingQueue,PriorityBlockingQueue,SynchronousQueue,BlockingDeque接口,ConcurrentHashMap,CountDownLatch,本文为系列文章第十篇,需要的朋友可以参考下
    2021-06-06
  • IDEA 2022 中的Lombok 使用基础教程

    IDEA 2022 中的Lombok 使用基础教程

    ​ Lombok是使用java编写的一款开源类库。其主作用是使用注解来代替一些具有格式固定,没有过多技术含量的编码工作,这篇文章主要介绍了IDEA 2022 中的Lombok 使用基础教程,需要的朋友可以参考下
    2022-12-12
  • 基于Hutool的图片验证码功能模块实现

    基于Hutool的图片验证码功能模块实现

    为了提高系统的安全性,防止接口被暴力刷新,验证码是个好的手段,图片验证码没有短信验证码的费用,其是个人开发者学习的重点,这篇文章主要介绍了基于Hutool的图片验证码功能模块实现,需要的朋友可以参考下
    2022-10-10
  • java开发实现五子棋游戏

    java开发实现五子棋游戏

    这篇文章主要为大家详细介绍了java开发实现五子棋游戏,具有双人对战和人机对战功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • WebFlux 服务编排使用优势详解

    WebFlux 服务编排使用优势详解

    这篇文章主要为大家介绍了WebFlux 服务编排使用优势示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论