喜欢就关注小编,小编天天写,你也可以进步一点点
Java中的I/O
Java中I/O流概述
对于输入流和输出流的基本概念通过下面的图进行说明:
上图是一台机器通过网络读取服务端数据,此图要说明的是流的一些基本概念。在服务器端,数据存储在磁盘上,将磁盘上的数据读取到 服务器内存 的过程是输入流,服务器通过网络将内存中的数据输出到客户端对于服务器内存来说是输出流。
在单机客户端,通过网络读取数据到内存的过程对于客户端内存是输入流,把读取到内存中的数据写入到磁盘的的过程对于客户端内存是输出流。所以输入流输出流是针对内存来说的。对于输入流就是读取的过程(Read),而输出流就是写的过程(Write)。
根据读写数据方式的不同,流可以分为字节流和字符流。
字节流按照字节的方式读取和写出数据,读写的最小单位是字节,字节流可以读写任何数据。
字符流读写数据的最小单位是一个字符,在Java中一个字符占用两个字节。
字符流只适合读写纯文本数据,如果读取的是图片、视频和二进制文件,需要使用字节流读写。在Java中,所有的字节流都是以 Stream 结尾,而字符流都是以Reader和Writer结尾。
文件中的信息是由一连串的字节或字符构成的,组成文件的字节序列称为字节流,组成文件的字符序列称为字符流。在Java中根据流的方向可以分为输入流和输出流。输入流是将磁盘上的文件或其它 输入设备 的数据加载到内存的过程。输出流与输入流相反,是将内存中的数据保存到磁盘文件或其他输出设备。
输入和输出流图解
文件是由字符或字节构成的,如纯文本文件是字符流,二进制文件如图片、视频是字节流。那么将磁盘上的文件加载到内存或再将内存中的数据输出到文件,需要有输入和输出流的支持,那么在Java语言中又把输入流和输出流各分为了两种,字节输入流和字节输出流,字符输入流和字符输出流。
输入输出流的分类
在Java中,输入输出流主要是上图中四个 抽象类 及其子类组成的。