就使用上来说,传统的面向流的IO更简单,而面向缓冲(块)的NIO更复杂,因为可调整空间大,接口的概念性也更加低层(原生)些。
下面说说使用场景:
IO的场景:
1.文件可能很多,但是size并不是那么大,可以一次性读入内存。
2.在同一时刻程序读写文件(网络连接)的数量不多,一个时刻只使用一个流。
3.应用是有序的(阻塞)的,也就是说,你的程序在直到读写文件完毕的时候,也不需要做太多额外的工作,没事儿,让线程等待(阻塞)一会儿,又如何。
NIO的场景:
1.应用需要同时处理成百上千的IO连接。