java中的IO流使用情况

java中有很多读取和写入文件的操作 像FileWirter Writer Reader BufferWriter 等 我一直区分不清这几个的特点,有没有大神帮忙处理下,通常什么情况使用什么比较好。各有那些优点和缺点

5个回答

你可以上网搜索哦下,很多的

有的有缓冲区,有的没有,有的没有;有的可以操纵字符文件,有的可以操纵字节文件,你可以按照这个进行分类

这是我自己整理的,你可以参考下
http://blog.csdn.net/evankaka/article/details/48225085

NoMasp
nomasp 不错啊!
大约 5 年之前 回复

最简单的解决办法是去看JavaAPI

Writer是个抽象类,不直接使用,不用理会。
FileWirter是jdk提供的便捷类,使用默认缓冲区大小(8K字符),操作字符流(字符或字符串)。
BufferWriter 与FileWirter相比,可以自定义缓冲区大小。
Reader同理。

Java常用的文件操作类在命名上有这么几个特点(以输出为例,输入同理)
1.两大分支:
(1)有Wirter的,都是操作字符流的,都是Wirter的子类。
(2)有OutputStream的,都是操作字节流的,都是OutputStream的子类。(OutputStreamWriter除外,以第1点优先)

2.有File的,是文件与各种文件操作类的衔接类。都是可以通过File对象或文件路径构建其实例,并且都是可以指定写模式(追加或覆写)。
(1)FileWriter是文件与Wirter类的衔接类
(2)FileOutputStream是文件与OutputStream类的衔接类

3.有Buffer的都是可以自定义缓冲区大小的。
(1)BufferedWriter是Buffer类与Wirter类的衔接类
(2)BufferedOutputStream是Buffer类与OutputStream类的衔接类

4.想指定编码(例如utf-8),必须用OutputStreamWriter,这是字节流与字符流的衔接类。

5.想以行为单位操作文件内容,必须使用BufferedWriter。

要想使用它们的所有特性,需要使用衔接类来嵌套以配合使用。

如你已经知道了文件名,有以下几个实例构建方案。
1.文件名→FileWriter→BufferedWriter 功能:可指定写模式,可指定缓冲区(默认8k字符),操作字符流
2.文件名→FileOutputStream→BufferedOutputStream 功能:可指定写模式,可指定缓冲区(默认8k字节),操作字节流
3.文件名→FileOutputStream→OutputStreamWriter→BufferedWriter 功能:可指定写模式,可指定编码,可指定缓冲区,操作字符流
ps:操作字节无需指定编码

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐