资讯专栏INFORMATION COLUMN

Java IO (一),理解

罗志环 / 2987人阅读

摘要:的是实现输入输出的基础中把不同的输入输出源键盘文件网络连接抽象的表述为流流的分类输入流和输出流按照流的流向来分输入流只能从中读数据而不能向其中写数据输出流只能向其中写出数据而不能从中读取数据此处的输入输出涉及到一个方向问题数据从内存到硬盘被

Java的IO是实现输入输出的基础,Java中把不同的输入/输出源(键盘,文件,网络连接)抽象的表述为"流",stream.

流的分类 输入流和输出流
按照流的流向来分

输入流 只能从中读数据,而不能向其中写数据

输出流 只能向其中写出数据,而不能从中读取数据

此处的输入,输出涉及到一个方向问题,数据从内存到硬盘,被称为输出流,也就是说,这里的输入输出都是从程序运行所在内存的角度来划分的. 字节流和字符流

字节流和字符流的区别仅在于字节流操和字符流操作的数据单元不同,字节流操作的最小数据单元是8位字节,而字符流操作的最小数据单元是16位的字符.

字节流由InputStraem,OutputStrem作为基类,字符流由Reader,Writer作为基类.

节点流和处理流 按照流的角色分,可以分节点流和处理流

可以从/向一个特定的IO设备(磁盘 网络)读/写数据流,称为节点流,节点流也被称为低级流(Low Level Stream).

使用节点流进行输入/输出时,程序直接连接实际的数据源,和实际的输入输出节点连接.

处理流则用于对一个已经存在的流进行连接或封装,通过封装后流来实现读/写功能.处理 流也称为高级流.

当使用处理流来进行输入/输出时,程序并不会连接到实际的数据源,没有和实际的输入/输出连接.使用处理流明显的好处是,只要使用相同的处理流,程序就可以采用完全的输入/输出代码来访问不同的数据源,随着处理流所包装的节点流改变,程序实际所访问的数据源也相应发生改变

Java使用处理流来包装节点是一种典型的装饰器设计模式,通过处理流来包装不同节点,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入/输出功能

流的概念模型

Java把所有设备里的有序数据抽象成流模型简化了输入/输出的处理.
Java的IO流设计40多个类,是从4个抽象基类派生出来的:

InputStream/Reader 所有输入流的基类,,前者是字节输入流,后者是字符输入流.

OutputStram/Writer 所有输出流的基类,前者是字节输出流,后者是字符输出流.

通过使用处理流,Java程序无须理会输入/输出节点是磁盘,是网络还是其他输入/输出设备,程序只要将这些节点包装成高级处理流,就可以使用相同的输入/输出代码来读写不同输入输出的设备.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64416.html

相关文章

  • 我的阿里之路+Java面经考点

    摘要:我的是忙碌的一年,从年初备战实习春招,年三十都在死磕源码,三月份经历了阿里五次面试,四月顺利收到实习。因为我心理很清楚,我的目标是阿里。所以在收到阿里之后的那晚,我重新规划了接下来的学习计划,将我的短期目标更新成拿下阿里转正。 我的2017是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三月份经历了阿里五次面试,四月顺利收到实习offer。然后五月怀着忐忑的心情开始了蚂蚁金...

    姘搁『 评论0 收藏0
  • Java包的基本概述

    摘要:第七章包的基本概述起因在我们设计一个程序的时候尤其是多人合作,会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包。概念为了更好地组织类,提供了包机制,用于区别类名的命名空间。 第七章 7.1 包的基本概述 起因: 在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包。(还有其他作用...

    Baaaan 评论0 收藏0
  • JDK10都发布了,nio你了解多少?

    摘要:而我们现在都已经发布了,的都不知道,这有点说不过去了。而对一个的读写也会有响应的描述符,称为文件描述符,描述符就是一个数字,指向内核中的一个结构体文件路径,数据区等一些属性。 前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 本来我预想是先来回顾一下传统的IO模式的,将传统的IO模式的相关类理清楚(因为IO的类很多)。 但是,发现在整理的过程已...

    YFan 评论0 收藏0
  • Java IO初探

    Java IO对大多数Java程序员来说是熟悉又陌生,熟悉的是感觉到处都有它的身影,小到简单的读取文件,大到各种服务器的应用,陌生的是Java IO背后到底是一个怎样的机制,今天就让我们去了解一下这位老朋友吧。本文不讲解Java IO如何具体使用,有这方面需求的同学可以自己查下。 IO模型 要说IO,就不得不说IO模型,IO模型大家都有所了解,同步异步,阻塞非阻塞什么的,总的来说IO模型可分为以下...

    edgardeng 评论0 收藏0
  • Java 征途:行者的地图

    摘要:老实说,当时一进入世界的大门就晕了,各种规范概念和英文缩写词能把人整的晕晕乎乎。等新的英文缩写又出现了,一口老血还没来得及喷出,又重新振作开始新的学习征程。 showImg(http://upload-images.jianshu.io/upload_images/1131767-1c5d16e39435df10.jpg?imageMogr2/auto-orient/strip%7Ci...

    dkzwm 评论0 收藏0

发表评论

0条评论

罗志环

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<