一个好的编程语言应该具有良好的io系统。java能够火这么多年其io系统功不可没。
流的概念:流式一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据时,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。
流的分类:
按数据方向分:输入流和输出流
输入流:InputStream/Reader
输出流:OutputStream/Writer
按数据类型分:字节流和字符流
字节流:InputStream/OutputStream
字符流:Reader/Writer
下图是常用的IO流:
关于字节流和字符流的区别
1、字节流和字符流的时候,读到一个字节就返回一个字节。
字符流使用了字节流读到一个或多个字节(中文对应的字节是两个,UTF-8码表中是三个)时,先去查指定的编码表,将查到的字符返回。
2、字符流可以初六所有数据,如图片,MP3等,字符流只能处理文本。
3、能使用字符流就使用字符流,不能就使用字节流。