Java.io详解2010-12-10一.Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型:1) input stream:1) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用2) StringBufferInputStream:把一个String对象作为InputStream3) FileInputStream:把一个文件作为InputStream,实现对文件的读取操作4) PipedInputStream:实现了pipe的概念,主要在线程中使用5) SequenceInputStream:把多个InputStream合并为一个InputStream2) Out stream1) ByteArrayOutputStream:把信息存入内存中的一个缓冲区中2) FileOutputStream:把信息存入文件中3) PipedOutputStream:实现了pipe的概念,主要在线程中使用4) SequenceOutputStream:把多个OutStream合并为一个OutStream1.2 以Unicode字符为导向的stream以Unicode字符为导向的stream,表示以Unicode字符为单位从stream中读取或往stream中写入信息。以Unicode字符为导向的stream包括下面几种类型:1) Input Stream1) CharArrayReader:与ByteArrayInputStream对应2) StringReader:与StringBufferInputStream对应3) FileReader:与FileInputStream对应4) PipedReader:与PipedInputStream对应2) Out Stream1) CharArrayWrite:与ByteArrayOutputStream对应2) StringWrite:无与之对应的以字节为导向的stream3) FileWrite:与FileOutputStream对应4) PipedWrite:与PipedOutputStream对应以字符为导向的stream基本上对有与之相对应的以字节为导向的stream。两个对应类实现的功能相同,字是在操作时的导向不同。如CharArrayReader:和ByteArrayInputStream的作用都是把内存中的一个缓冲区作为InputStream使用,所不同的是前者每次从内存中读取一个字节的信息,而后者每次从内存中读取一个字符。