[十八]JavaIO之FileReader 和 FileWriter

简介

FileReader FileWriter 都是提供操作文件的便捷类

这两个类的实现非常的简单

原理

回忆下之前的InputStreamReader和OutputStreamWriter InputStreamReader 是转换流,字节通往字符的桥梁 OutputStreamWriter是转换流 字符通向字节的桥梁 他们是适配器模式, InputStreamReader目标是Reader OutputStreamWriter目标是Writer InputStreamReader接受一个InputStream OutputStreamWriter 接受一个OutputStream 然后将他们用起来像是Reader或者Writer

再想一下FileInputStream和FileOutputStreamFileInputStream 是InputStreamFileOutputStream是OutputStream

FileInputStream和FileOutputStream 又可以通过File String路径名或者文件描述符构造

所以,如果想要对文件进行字符操作 你肯定想得到下面的方式 new InputStreamReader(new FileInputStream(File/String/FileDescriptor)  )

现在,看下FileReader 和  FileWriter他们的构造方法

很清楚的看得出来 FileReader 和  FileWriter所有的构造方法都是做了一件事情 那就是调用 InputStreamReader   和 OutputStreamWriter的构造方法 也就是: new InputStreamReader(new FileInputStream(File/String/FileDescriptor)  ) 或者 new OutputStreamWriter(new FileOutputStream(File / String /fd)); 因为他们是InputStreamReader 和 OutStreamWriter的子类 所以用的是super调用

另外是否还记得InputStreamReader 以及OutputStreamWriter的构造方法么他们还能够设置字符但是FileReader和FileWriter却没有,显然他们是简化版的形式,他们总是假定默认字符编码和默认字节缓冲区大小都是适当的所以如果才有必要的情况下你应该自己去创建InputStreamReader 以及OutputStreamWriter的对象,指定编码并且可以增加缓冲 BufferXXX装饰

总结

FileReader 和 FileWriter继承了InputStreamReader 和OutputStreamWriter

他们本身就是InputStreamReader 或者OutputStreamWriter

他们只是new   InputStreamReader 或者OutputStreamWriter的简化形式

使用这两个类,只需要清楚他们的构造方法即可

想要深入理解,可以在翻看下InputStreamReader 和OutputStreamWriter的介绍

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏landv

社会单位消防安全户籍化管理系统——半自动提交V1.0版本

1.2K30
来自专栏用户2442861的专栏

java IO流之四 使用转换流InputStreamReader和OutputStreamWriter

http://blog.csdn.net/a107494639/article/details/7586744

23310
来自专栏用户画像

获得InputStream,读取配置文件的方式

InputStream in = new BufferedInputStream(new FileInputStream("E:\\svn_new\\3icom...

60420
来自专栏李家的小酒馆

Java IO(IO流)-2

IO流 第一部分 (OutputStreamWriter BufferOutputStream) 转换流 超类为Reader和Writer 是字符流通向字节流的...

20100
来自专栏xingoo, 一个梦想做发明家的程序员

Java程序员的日常—— IOUtils总结

以前写文件的复制很麻烦,需要各种输入流,然后读取line,输出到输出流...其实apache.commons.io里面提供了输入流输出流的常用工具方法,非常方...

60190
来自专栏机器学习实践二三事

java IO体系

IO流 Java中IO流分为两种,字节流和字符流,顾名思义字节流就是按照字节来读取和写入的,字符刘是按照字符来存取的;常用的文件读取用的就是字符流,在网络通信里...

22670
来自专栏钟绍威的专栏

初识字节流+实现缓冲字节流OutputStream的主要方法构造方法读关流实现BufferedInputStream实现BufferedOutputStream为什么read()返回的是Int型而不是

java中的IO流可以分为两种:字符流和字节流 字符流,顾名思义,就是对字符进行操作,只能操作文本文件 字节流,就是对字节进行操作,然而所有文件都是由字...

19980
来自专栏JAVA技术站

JAVA IO流之BufferedInputStream,BufferedOutputStream

BufferedInputStream的数据成员buf是一个位数组,默认为2048字节。当读取数据来源时,例如文件,BufferedInputStream会尽量...

9220
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-21(01)总结字符流,IO流编码问题,实用案例必做一遍

1:字符流(掌握) // 字节流读取中文可能出现的小问题(所以用字符流输入输出中文) package cn.itcast_01; import java.io...

34440
来自专栏mathor

BufferedIo

14730

扫码关注云+社区

领取腾讯云代金券