IO,NIO浅析
IO:传统的java输入输出。
1.字节流:inputstream(读),outputstream(写);
2.字节流:reader (读),writer(写)。
字符流和字节流的区别:
1.字节流读一个字节返回一个字节,字符流读取一个或者多个字节(中文用utf8编码表中对应的字节数是三个),先查询编码表再返回字符。
2.字节流可以处理所有类型的数据如mp3,图片,avi,而字符流只能处理字符数据。
如果处理纯文本数据要优先考虑使用字符流,其他都是用字节流。因为硬盘上的所有文件都是以字节的形式进行传输或者保存的,包括图片等内容。但是字符只是在内存中才会形成的,所以在开发中,字节流使用广泛。
NIO:new io
一. 介绍NIO
NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。
1.
Buffer:它是包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。
2.
Charset:它提供Unicode字符串影射到字节序列以及逆影射的操作。
3.
Channels:包含socket,file和pipe三种管道,它实际上是双向交流的通道。
4.
Selector:它将多元异步I/O操作集中到一个或多个线程中(它可以被看成是Unix中select()函数或Win32中WaitForSingleEvent()函数的面向对象版本)。
IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器

浙公网安备 33010602011771号