Java IO 随笔(一) 概述

概念部分

输入流(InputStream)与输出流(OutputStream)

在Java IO中 关于输入流与输出流往往是一个比较容易被混淆的概念。其实这两个概念是一个相对的东西,我们先解释什么是输入(input)和输出(output),然后去讨论流的问题。

输入&输出概念

  • 输入(input):这里所说的输入是相对于正在执行的Java程序来讲的,所以输入实际上指的是数据的来源(Source ),比如某个程序要读取磁盘中的某个文件,那这个文件就是来源,很显然这就是一种输入。所以说不论从键盘上获取数据还是从磁盘中获取文件就是一种输入。
  • 输出(output):和输入一样,输出也是一个相对的概念,也是相对于运行的Java程序的。所以通常我们看到的往磁盘上写文件亦或是将字节传输给另外一个远端的电脑,这种都是输出,其实就是数据的目标(Destination)。

    这里写图片描述

IO流(IO Streams )
IO流是Java中很重要的一个概念,见名知意,你可以认为IO流就好比是管道(Pipes)中的水,不一样的是在Java中指的是数据,也就是数据流。它是链接 来源于目标的载体。在Java中流可以是基于字节的(字节流)也可以是基于字符的(字符流)。

Java中的 InputStream, OutputStream, Reader and Writer

下面这张图是 InputStream, OutputStream, Reader and Writer 的关系。可以看出他们的关系是 InputStream(输入流)=》Reader ,OutputStream(输出流)=》Writer。

在Java中Reader 和Writer实际上是 InputStream,OutputStream的高级包装类,用来包装对输入流与输出流的操作。

这里写图片描述

Java IO 包括的内容

Java IO包下有很多子类,比如 InputStream, OutputStream, Reader and Writer。这些子类各自有各自的作用。将Java IO概括为:

  • 文件访问(File Access)
  • 网络访问(Network Access)
  • 内存缓冲区(Memory Buffer)
  • 用于线程接通信的管道(Pipes)
  • 缓冲
  • 过滤
  • 解析
  • 文本处理
  • 原始类型处理
  • 对象处理

完:)

猜你喜欢

转载自blog.csdn.net/qq_38692223/article/details/80322751