一、java io 概述
1.1 相关概念
Java IO:Java IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络),我们还要考虑具体和它们的通信方式(顺序、随机、二进制、按字符、按字、按行等等)。Java类库的设计者通过设计大量的类来攻克这些难题,这些类就位于java.io包中。
在JDK1.4之后,为了提高Java IO的效率,Java又提供了一套新的IO,Java New IO简称 Java NIO。它在标准java代码中提供了高速的面向块的IO操作。
流
在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。你既可以从流中读取数据,也可以往流中写数据。流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。
IO相关的媒介
Java的IO包主要关注的是从原始数据源的读取以及输出原始数据到目标媒介。以下是最典型的数据源和目标媒介:
- 文件
- 管道
- 网络连接
- 内存缓存
- System.in, System.out, System.error(注:Java标准输入、输出、错误输出)
下面这幅图