前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[十八]JavaIO之FileReader 和 FileWriter

[十八]JavaIO之FileReader 和 FileWriter

作者头像
noteless
发布2018-09-14 14:50:03
5000
发布2018-09-14 14:50:03
举报
文章被收录于专栏:noteless

简介

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装饰

总结

image_5b9a0066_1db
image_5b9a0066_1db

FileReader 和 FileWriter继承了InputStreamReader 和OutputStreamWriter

他们本身就是InputStreamReader 或者OutputStreamWriter

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 原理
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档