Java IO (1)- 概述

一、Input 和 Output

IOInputOutput 的简称。输入和输出在概念上有点模糊,一个应用程序的输入部分往往是另一个部分的输出。

Java 的 IO 包本身的主要关注点在于,从一个地方读取原始数据和向目的地写入数据。IO 相关的概念有:

  • 文件(File)
  • 管道(Pipes)
  • 网络连接(Network Connections)
  • 内存缓冲区,比如数组(In-memory Buffers)
  • System.in, System.out, System.error

下面的图说明了一个程序从一个地方读数据并且写数据到目的地的原理:

在这里插入图片描述

二、流(Stream)

IO 流是 Java IO 的核心概念。流是一个概念上的无休止的数据流。你既可以从一个流读取数据也可以写入到一个流。流用来连接数据源与目标地。Java IO流基于字节流和字符流。

三、The InputStream, OutputStream, Reader and Writer

一个程序从数据源读取数据的时候,需要 InputStream或者Reader。程序写数据的时候,就需要OutputStream或Writer。具体可以参见下面图例:
在这里插入图片描述

四、Java IO的目的和特性

Java IO中有很多InputStream, OutputStream, Reader和Writer的子类,这些子类会用来处理不同的需求。这就是为什么有这么多类的原因。具体的用法主要有以下一些场景:

  • 文件
  • 网络流
  • 内存缓冲区
  • 管道
  • 缓冲
  • 过滤
  • 解析
  • 读写文本
  • 读写原始类型的数据(long等等)
  • 读写对象

上面的这些可以让你在阅读Java IO相关类的时候清晰一些。更能理解这些类的目的都是什么。

五、Java IO相关类概览

字节输入流Output字符输入流Output
基础类InputStreamOutputStreamReader/InputStreamReaderWriter/OutputStreamWriter
数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
文件FileInputStream/RandomAccessFileFileOutputStream/RandomAccessFileFileReaderFileWriter
管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter
BufferBufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
FilterFilterInputStreamFilterOutputStreamFilterReaderFilterWriter
解析PushbackInputStream/StreamTokenizerPushbackReader/LineNumberReader
StringStringReaderStringWriter
DataDataInputStreamDataOutputStream
Data - FormattedPrintStreamPrintWriter
ObjectsObjectInputStreamObjectOutputStream
实用工具SequenceInputStream

参考文档:

  • http://tutorials.jenkov.com/java-io/overview.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值