①读写的时候 字节流是按字节读写,字符流按字符读写 。
②字节流适合所有类型文件的数据传输,因为计算机字节(Byte)是电脑中表示信息含义的最小单位。字符流只能够处理纯文本数据,其他类型数据不行,但是字符流处理文本要比字节流处理文本要方便。
③在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。
④只是读写文件,和文件内容无关时,一般选择字节流。
同步和异步描述的是针对当前执行线程、或进程而言,发起IO调用后,当前线程或进程是否挂起等待操作系统的IO执行完成。
我们说一个IO执行是 同步执行 的,意思是 程序发起IO调用,当前线程或进程需要等待操作系统完成IO工作并告知进程已经完成,线程或进程才能继续往下执行其他既定指令 。
如果说一个IO执行是 异步执行 的,意思是 该动作是由当前线程或进程请求发起,且当前线程或进程不必等待操作系统IO的执行完毕,可直接继续往下执行其他既定指令。操作系统完成IO后,当前线程或进程会得到操作系统的通知 。
UNIX系统下,IO模型一共有5种:同步阻塞I/O、同步非阻塞I/O、I/O多路复用、信号驱动I/O和异步I/O。
应用层。
如Kryo、Protobuf、ProtoStuff、hessian等
Java序列化方式有很多,常见的有3种: