IO开篇
IO开篇
大多应用程序都需要实现与设备之间的数据传输,例如键盘输入数据,显示器可以显示程序的运行结果等。在Java中,将这 种通过不同输入输出设备(键盘、内存、显示器、网络等)之间的数据传输抽象表述为“流”,程序允许通过流的方式与输入输
出设备之间进行数据传输。Java中的“流”都位于Java.io包中,成为IO(输入输出)流。
IO流有很多,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可以分为输入流和输出流,程序从输入流中读取数据,想输出流中写入数据。
在IO包中,字节流的输入输出流分别用Java.io.InputStream和java.io.OutputStream表示。字符流的输入输出流分别
用Java.io.Reader和java.io.Writer表示,
流分类:
1.节点流:可以直接从数据源或目的地读写数据 数据源 --》 程序
2.处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装,目的主要是简化操作提高性能。 数据源 --|--|> 程序
节点流和处理流的关系:
1.1:节点流处于IO流的第一线,所有操作必须通过他们进行。
1.2:处理流可以对其他流进行处理(提高效率或操作灵活性)。
4.字节流:按照字节读取数据(InputStream、OutputStream)
5.字符流:按照字符读取数据(Reader、Writer),因为文件的编码不同,从而有了对字符进行高效操作的字符流对象。
原理:底层还是基于字节流操作,自动搜寻指定的码表。