java io流系统介绍

来源:互联网 发布:鹰卫浴淘宝 编辑:程序博客网 时间:2024/05/15 04:19

参考:http://blog.csdn.net/jiangwei0910410003/article/details/22376895

java流在处理上分为字节流和字符流。字符流在处理上为2个字节的unicode字符。分别操作字符,字符数组和字符串。

而字节流处理单元为一字节。操作字节和字节数组

java内用unicode编码存储字符,字符流处理类负责将外部其他编码的字符流和java内部的字符流转换。

InputStreamReader和OutputStreamWriter处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)比字节流(一次一个字节)操作效率高。

一。以字节为导向的Stream:InputStream和OutputStream

为abstract类,对于字节为导向的都扩展这两个类。

ByteArrayInputStream--把内存中的一个缓冲区作为InputStream使用

StringBufferInputStream--把一个String对象作为InputStream

FileInputStream--把一个文件作为InputStream

PipedInputStream--

SequenceInputStream--把多个输入流连续合并起来

ObjectInputStream--用于操作Object的InputStream

FilterInputStream--是一个过滤的InputStream

BufferedInputStream--使用缓冲区的InputStream

DataInputStream--数字格式化的Stream

二。OutputStream:

ByteArrayOutputStream--把信息存入内存中的一个缓冲区

FileOutputStream--向file输出

PipedOutputStream--管道输出流

ObjectOutputStream--输出Object对象的stream

FilterOutputStream--过滤的outputStream

BufferedOutputStream--带有缓冲区的Stream

DataOutputStream--具有格式化的OutputStream

PrintStream--直接输出到控制台中

三。以字符为导向的Stream:reader,writer

一unicode字符为单位

CharArrayReader:字符输入流的字符缓冲区

StringReader:

FileReader:

PipedReader:

InputStreamReader:将InputStream转化成reader

四。CharArrayWriter

StringWriter

FileWriter

PipedWriter:

OutputStreamWriter:

PrintWriter:PrintReader??

五。两种不同导向Stream之间的转换

InputStreamReader和OutputStreamWriter

六。java io使用原则:

按数据来源分类:

按是否格式化输出:PrintStream,PrintWriter

按是否要缓冲分:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter

按数据格式分:二进制格式

纯文本格式:

按输入输出分:Reader,InputStream、Writer,OutputStream

特殊需要:Stream到Reader

对象输入输出

进程间通信:PipedInputStream

合并输入:sequenceInputStream

更特殊的需要:PushbackInputStream


决定使用哪个类以及他的构造进程一般准则如下:

首先考虑最原始的数据格式是什么

是输入还是输出

是否需要转换流

数据来源是什么

是否要缓冲

是否要格式化输出



0 0
原创粉丝点击