博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[十八]JavaIO之FileReader 和 FileWriter
阅读量:6965 次
发布时间:2019-06-27

本文共 1427 字,大约阅读时间需要 4 分钟。

简介

FileReader FileWriter 都是提供操作文件的便捷类
这两个类的实现非常的简单

原理

回忆下之前的InputStreamReader和OutputStreamWriter
InputStreamReader 是转换流,字节通往字符的桥梁
OutputStreamWriter是转换流 字符通向字节的桥梁
他们是适配器模式,
InputStreamReader目标是Reader
OutputStreamWriter目标是Writer
InputStreamReader接受一个InputStream
OutputStreamWriter 接受一个OutputStream
然后将他们用起来像是Reader或者Writer
再想一下FileInputStream和FileOutputStream
FileInputStream 是InputStream
FileOutputStream是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的介绍

转载于:https://www.cnblogs.com/noteless/p/9640231.html

你可能感兴趣的文章
UVA 10139 Factovisors(数论)
查看>>
Codeforces 458A Golden System
查看>>
java通过抛异常来返回提示信息
查看>>
LPC43xx双核笔记
查看>>
Flex4将对象转换成json串
查看>>
实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法
查看>>
Swift - 多行文本输入框(UITextView)的用法
查看>>
hdu 1251 统计拼图
查看>>
Java多线程6:synchronized锁定类方法、volatile关键字及其他
查看>>
JSON--List集合转换成JSON对象
查看>>
jQuery的选择器中的通配符[id^='code']
查看>>
Oracle's Business Intelligence Applications Configuration Manager 基本概念
查看>>
算法----选择排序(select sort)
查看>>
HDU 2845 Beans
查看>>
Simple File System
查看>>
GoldenGate: Extract Abend with Detect Inconsistency in Pdata (文档 ID 1355067.1)
查看>>
AngularJS 国际化——Angular-translate
查看>>
mongodb-创建索引
查看>>
视频和音频播放的演示最简单的例子9:SDL2广播PCM
查看>>
房间计费系统改造——数据库设计
查看>>