博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java IO 概述
阅读量:6041 次
发布时间:2019-06-20

本文共 1129 字,大约阅读时间需要 3 分钟。

 

输入和输出-数据源和目标媒介

术语“输入”和“输出”有时候会有一点让人疑惑。一个应用程序的输入往往是另一个应用程序的输出。那么OutputStream流到底是一个输出到目的地的流呢,还是一个产生输出的流?InputSteam流到底会不会输出它的数据给读取数据的程序呢?这些问题确实会让初学者迷惑。

 

输入流可以理解为向内存输入,输出流可以理解为从内存输出。

 

java的IO包主要关注的是从原始数据源的读取以及输出原始数据到目标媒介。以下是最典型的数据源和目标媒介:

.文件

.管道

.网络连接

.内存缓存

.System.in,System.out,System.error(注:Java标准输入、输出、错误输出)

 

下面这张图描绘了一个程序从数据源读取数据,然后将数据输出到其他媒介的原理:

在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。你既可以从六中读取数据,也可以往流中写数据。流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写)也可以是字符流(以字符为单位进行读写)。

 

类InputStream,OutputStream,Reader和Writer

一个程序需要InputSteam或者Reader从数据源读取数据,需要OutputStream或者Writer将数据写入到目标媒介中。以下的图说明了这一点:

InputStream和Reader与数据源相关联,

OutputStream和Writer与目标媒介相关联。

 

Java IO的用途和特征

Java IO中包含了许多InputStream、OutputStream、Reader、Writer的子类。这样的设计的原因是让每一个类都负责不同的功能。这也就是为什么IO包中有这么多不同的类的缘故。各类用途汇总如下:

.文件访问

.网络访问

.内存缓存访问

.线程内部通信(管道)

.缓冲

.过滤

.解析

.读写文本(Readers/Writers)

.读写基本类型数据(long,int etc.)

.读写对象

当通读过Java IO类的源代码之后,我们很容易就能了解这些用途。这些用途或多或少让我们更加容易地理解,不同的类针对不同业务场景。

 

Java IO类概述表

已经讨论了数据源、目标媒介、输入、输出和各类不同用途的Java IO类,接下来是一张通过输入、输出、基于字节或者字符、以及其他比如缓冲、解析之类的特定用途划分的大部分Java IO类的风格。

 

本文引用自:http://ifeve.com/java-io-3/

 

转载于:https://www.cnblogs.com/shindo/p/5772379.html

你可能感兴趣的文章
让你的Blend“编辑其他模板”菜单里出现你的Style
查看>>
UILabel添加图片之富文本的简单应用
查看>>
Ipython Notebook ipynb文件转化为Python脚本
查看>>
springboot~rabbitmq的队列初始化和绑定
查看>>
【混淆矩阵】完整版
查看>>
jboss-as- 7.1.1.Final配置jndi数据源
查看>>
JavaScript:数据类型
查看>>
POI之Excel导出
查看>>
yii2 緩存
查看>>
Spring事务管理(详解+实例)
查看>>
java程序中获取kerberos登陆hadoop
查看>>
C#图解教程 第十七章 泛型
查看>>
SQL Server 解读【已分区索引的特殊指导原则】(2)- 唯一索引分区(转载)
查看>>
windows 2003 Server平台Delphi程序不支持直接调用webservice
查看>>
故事:用户凭什么跟你走
查看>>
三个 CSS 预处理器(框架):Sass、LESS 和 Stylus
查看>>
【转】QT中QWidget、QDialog及QMainWindow的区别
查看>>
Azure Storage (26) HTML5播放Azure Storage MP4问题
查看>>
收集常用的正则表达式
查看>>
C++ 术语(C++ Primer)
查看>>