我个人觉得只要使用包装流不外乎两大原因:第一就是效率问题,第二就是为了对相应类型数据可以简化操作。举个例子:如果你要对文件进行读取,如果你直接用FileInputStream、FilleOutputStream这些流,那么OutputStream的write这个方法都会每调用一次都会直接操作到硬盘的文件,但假使你用包装流BufferedOutputStream这个流包装的话,你就算每次调用write方法,它都只是写到内存缓冲区里,假使到内存路径的长度为50公里,到硬盘的路径长度可能就是他的双倍了。如果我说叫你搬一百个球到硬盘,一次只能搬一个,但是从内存搬到硬盘的时候可以一次搬100个,这时我想你肯定是先一个个的把球先搬到内存,然后直接从内存一次搬100个到硬盘吧,这样也比你把球一个个的搬到硬盘,中间不在内存放的速度快吧!这样的效率都不知道提高了多少倍!
当有时你想直接写一个字符串到文件,而不想用字节流一个自己一个字节的写,也可以使用处理对应类型数据的包装流,这些流内部的运行都会比操作字节的效率来的高,你可以自己打印时间试试,也可以看JDK目录下的src里面的API源文件....陈希然 |