一.字节流JAVA的IO体系-流
字节流是以1个字节为导向的流,每次处理1个字节的字符。字节流类分为InputStream和OutputStream.两者都是Abstract类,不能直接实例化。
(1)InputStream
InputStream及其子类之间的关系如下:
1) ByteArrayInputStream:把内存中的一个缓冲区作为 InputStream 使用;2) StringBufferInputStream:把一个 String 对象作为 InputStream;3) FileInputStream:把一个文件作为 InputStream,实现对文件的读取操作;4) PipedInputStream:实现了 pipe 的概念,主要在线程中使用;5) SequenceInputStream:把多个 InputStream 合并为一个 InputStream;6) FilterInputStream:抽象类,作为”修饰器”与其他对象相连以提供有用接口;7) ObjectInputStream: 把一个类对象作为InputStream.主要是为了实现对象的串行化.
(2)OutputStream
OutputStream及其子类之间的关系如下:
1) ByteArrayOutputStream:把信息存入内存中的一个缓冲区中;2) FileOutputStream:把信息存入文件中;3) PipedOutputStream:实现了 pipe 的概念,主要在线程中使用;4) ObjectOutputStream:把对象输出,主要用于实现对象的串行化;5) FilterOutputStream:抽象类,作为”修饰器”与其他对象相连以提供有用接口.
二.字符流
字符流是以2个字节(unicode)为导向的流,每次处理2个字节的字符。字符流类分为Reader和Writer.
(1)Reader1) BufferedReader:把内存中的一个缓冲区作为 InputStream 使用;2) CharArrayReader:把一个 Char数组作为 InputStream;3) FileReader:把一个文件作为 InputStream,实现对文件的读取操作;4) PipedReader:实现了 pipe 的概念,主要在线程中使用;5) StringReader:把一个String对象作为 InputStream.
(2)Writer
1) BufferedWriter:把内存中的一个缓冲区输出;2) CharArrayWriter:把一个 Char数组作为 OutputStream;3) FileWriter:把一个文件作为OutputStream,实现对文件的写入操作;4) PipedWriter:实现了 pipe 的概念,主要在线程中使用;5) StringWriter:把一个String对象作为OutputStream.
三.两种不同导向的 stream 之间的转换
InputStreamReader 和 OutputStreamReader :
把一个以字节为导向的 stream 转换成一个以字符为导向的 stream 。InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。InputStreamReader 的 read() 方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。为了达到更高效率,考虑用
BufferedReader 封装 InputStreamReader :
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- InputStreamReader(InputStream) 用缺省的字符编码方式,创建一个InputStreamReader;
- InputStreamReader(InputStream, String) 用已命名的字符编码方式,创建一个 InputStreamReader
- OutputStreamWriter 将多个字符写入到一个输出流,根据指定的字符编码将多个字符转换为字节。每个 OutputStreamWriter 合并它自己的 CharToByteConverter, 因而是从字符流到字节流的桥梁。
源自:
http://blog.youkuaiyun.com/ilibaba/article/details/3955799
http://www.fengfly.com/plus/view-190429-1.html
http://www.doc88.com/p-73048446308.html
http://wenku.baidu.com/view/e12b261255270722192ef731.html
本文详细介绍了Java中的IO体系,包括字节流和字符流的概念、各类流的具体用途及其实现方式,同时探讨了字节流与字符流之间的转换。
1618

被折叠的 条评论
为什么被折叠?



