IO类的关系:
InputStream
|--FileInputStream
|--ByteArrayInputStream
|--PipedInputStream
|--SequenceInputStream
|--FilterInputStream PushbackInputStream DataInputStream BufferedInputStream
|--ObjectInputStream
字节输入流的子类通过字母开头的单词即可以看出它是操作什么数据的。
file文件,byteArray内存,piped管道,filter文件过滤,Sequence合并,Object对象,Data数据,回退,Buffered缓冲。
Buffered缓冲有一些特殊,它是对其它流进行包装的,对其它流扩展了一些功能,使其更好用。
InputStream字节输入流主要的功能就是读取数据:
read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组。
另外还提供一个字节一个字节读取的方法,此方法是抽象的,需要子类对其覆写。
read() 从输入流中读取数据的下一个字节。
OutputStream 是输出流,与InputStream相对应,功能主要就是写功能。
|--ByteArrayOutputStream
|--FileOutputStream
|--FilterOutputStream PrintStream DataOutputStream BufferedOutputStream
|--ObjectOutputStream
|--PipedOutputStream
字节输出流与输入流是相对应的,体系也其本一样,功能为写,其各个子类针对某一领域进行写操作,另提供一些特殊的方法。
BufferedOutputStream 也是对其它流进行包装的,扩展其它流的功能。
与字节流对应是字符流 Reader,Write,字符流是以一个字符为基本单位对数据进行操作的,一般来说操作的都是文本。
而字节流操作的字节,一般如 影音文件,图片文件等多媒体文件 。字符注的体私系与字节流相似。
还有就是连接字节流与字符流的转换流InputStreamReader ,OutputStreamWriter ,通过转换流就可以用字符流的一些手法来对
字节流文件进行操作,方便了操作。
PrintWriter 字符输出流比较特殊,它构造时即可以接收字节流,又可接收字符流。
|
|