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.util.concurrent包中的线程池和消息队列

    浅谈java.util.concurrent包中的线程池和消息队列

    这篇文章主要介绍了浅谈java.util.concurrent包中的线程池和消息队列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Java中final、static关键字与方法的重写和继承易错点整理

    Java中final、static关键字与方法的重写和继承易错点整理

    这篇文章主要给大家介绍了关于Java中final、static关键字与方法的重写和继承易错点的相关资料,在Java编程中final关键字用于限制方法或类的进一步修改,final方法不能被子类重写,而static方法不可被重写,只能被遮蔽,需要的朋友可以参考下
    2024-10-10
  • Java重点梳理类与对象核心原理

    Java重点梳理类与对象核心原理

    类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型
    2022-07-07
  • Java 动态代理的多种实现方式

    Java 动态代理的多种实现方式

    动态代理实际上是JVM在运行期动态创建class字节码并加载的过程。本文讲述了Java 动态代理的多种实现方式,感兴趣的朋友可以选择适合自己的方式
    2021-06-06
  • IDEA的spring项目使用@Qualifier飘红问题及解决

    IDEA的spring项目使用@Qualifier飘红问题及解决

    这篇文章主要介绍了IDEA的spring项目使用@Qualifier飘红问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Java实现NIO聊天室的示例代码(群聊+私聊)

    Java实现NIO聊天室的示例代码(群聊+私聊)

    这篇文章主要介绍了Java实现NIO聊天室的示例代码(群聊+私聊),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • SpringBoot3使用Swagger3的示例详解

    SpringBoot3使用Swagger3的示例详解

    本文介绍了如何在Spring Boot 3项目中使用Swagger3进行后端接口的前端展示,首先,通过添加依赖并配置application.yml文件来快速启动Swagger,然后,详细介绍了Swagger3的新注解与Swagger2的区别,并提供了一些常用注解的使用示例,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Java从零实现超市会员管理系统

    Java从零实现超市会员管理系统

    这篇文章主要为大家详细介绍了Java实现超市会员管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-12-12
  • SpringBoot中的自动装配原理详解

    SpringBoot中的自动装配原理详解

    本文将通过在Spring中集成MyBatis和在SpringBoot中集成MyBatis为大家简单梳理自动配置过程,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • java中删除数组中重复元素方法探讨

    java中删除数组中重复元素方法探讨

    这个是一个老问题,但是发现大多数人说的还不够透。小弟就在这里抛砖引玉了,欢迎拍砖
    2013-10-10

最新评论