转自:
Java中IO包用于输入和输出的操作,那么它们分别指什么呢?
输入和输出简介
输入:
通常指一个程序接收外界的输入
输出:
通常指一个应用程序的输出
常见的输入和输出有如下所示:
InputStream及OutputStream
Java中常用于输入流及输出流的场景如下所示:
在java中,我们将一个连续的数据流称之为“流”,
我们即可以从一个流中读取数据,也可以向流中写数据
java中的流即可是一个字节流(使用字节为单位读写)
也可以是一个字符流(使用字符为单位读写)
如:
类InputStream 类OutputStream, Reader 和Writer
一个程序需要InputStream或者Reader从数据源读取数据,需要OutputStream或者Writer将数据写入到目标媒介中。以下的图说明了这一点:
Java IO的用途
java中IO用途可以进行以下操作,如下所示:
文件访问 网络访问 内存缓存访问 线程内部通信(管道) 缓冲 过滤 解析 读写文本(Readers/Writers) 读写基本类型数据 (long,int etc.) 读写对象
Java IO中常见的类
| Byte Based Input | Output | Character Based Input | Output | |
| Basic | InputStream | OutputStream | Reader InputStreamReader | Writer OutputStreamWriter |
| Arrays | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
| Files | FileInputStreamRandomAccessFile | FileOutputStreamRandomAccessFile | FileReader | FileWriter |
| Pipes | PipesInputStream | PipesOutputStream | PipesReader | PipesWriter |
| Buffering | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
| Filtering | FilterInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
| Parsing | PushbackInputStreamStreamTokenizer | PushbackReaderLineNumberReader | ||
| Strings | StringReader | StringWriter | ||
| Data | DataInputStream | DataOutputStream | ||
| Data-Formatted | PrintStream | PrintWriter | ||
| Objects | ObjectInputStream | ObjectOutputStream | ||
| Utilities | SequenceInputStream |