流是Java内存中的一组有序数据序列。Java中的IO流可以理解为一种“数据的管道”。IO输入输出流,对应实际生活中的管道,生活中,管道是双向流通的。Java中的流也是这样的,有输出流和输入流。不同的管道输送不同的物质,污水管道、暖气管道,如果这些管道都使用一个管道,后果会是什么样子呢?所以也就有了管道的分类。
Java中的流根据流向可以分为输入流和输出流;根据输入输出单位分为字节流和字符流;根据流功能层次的不同分为节点流和处理流
一:基本输入流(InputStream)和基本输出流(OutputStream)是处理以8位字节位基本单位的字节流类,读写以字节位单位进行。
Reader和Writer类是专门处理16位字符流的类,读写以字符(Unicode)为单位进行。
二:介绍几个常用知识点
System.in:从标准输入获取输入(通常是键盘)
System.out:把输出送到缺省的显示(通常是显示器)
三:流的抽象类:InputStream、OutputStream、Reader、Writer,所有的流类都是继承这四种抽象流。这四种抽象类不能直接使用。
四:根据功能层次的不同节点流和处理流有:节点流:File文件流; 处理流:Buffer缓冲流、转换流、数据流、打印流、Object流、ArrayByteOutputStream(字节数组输出流,分配在内存空间的一个字节数组)
五:实际应用中,通常是将节点流于处理处二者结合起来使用。接电流直接与指定的源或目标相连。如某个文件,而处理流则对节点流或其他处理流进一步进行封装,提供更丰富的输入/输出操作能力。