java.io和java.nio
1、java.io中最为和兴的一个概念是流(Stream),面向流的编程。java中,一个流要么是输入流,要么是输出流,不可能同时既是输入流又是输出流。
2、java.nio中有三个核心概念:Selector,Channel,与Buffer。在java.nio中,我们是面向块(block)或是缓冲区(buffer)编程的。buffer本身就是一块内存,底层实现上。它实际上是个数组。数据的读、写都是通过Buffer来实现的。
除了数组之外,Buffer还提供了对于数据的结构化访问,并且可以追中带系统的读写过程。
Java中的8中原生数据类型都有各自的Buffer类型,比如:ByteBuffer,CharBuffer,IntBuffer;
Channel指的是可以向其写入数据或是从中读取数据的对象,它类似java.io中的Stream.所有数据的读写都是通过Buffer来进行的,不可能直接向Channel写入数据的情况或是直接从Channel读取数据的情况;与Stream不同的是,Channel是双向的,一个流可能是InputStream或是OutputStream,Channel打开后则可以进行读写操作。
网友评论