IO流03_流的分类和概述
【概述】
Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作。
Java中把不同的输入/输出源(键盘、文件、网络连接)抽象表述为"流"(Stream)。
【流的分类详细】
[ 输入流---输出流 ]
按照流的流向,可以将流分为输入流和输出流。
输入流:从其中读取数据
输出流:向其种写入数据
注意:划分输入/输出流是从程序运行时的所在的内存的角度来划分的。
输入流常用的基础类:InputStream和Reader
输出流常用的基础类:OutputStream和Writer
注意:这些积累都是抽象类,无法直接实例化。
[ 字节流---字符流 ]
字节流和字符流的内的方法几乎一样,区别仅仅是其操作的数据单元大小不同,
字节流的数据操作单元: 8位的字节
字符流的数据操作单元: 16位的字节
字节流常用的基础类:InputStream和OutputStream
字符流常用的基础类:Reader和Writer
[ 节点流---处理流 ]
节点流:从/向一个特定的IO设备(磁盘、网络等)读/写数据的流。节点流也常称为低级流( Low Level Stream )如下。

从图中可以看出,当使用节点流进行输入/输出时,程序直接连接到实际的数据源,和实际的输入/输出节点连接。
处理流:用于对已存在的流进行连接或封装,通过封装后的流来实现对数据的读/写功能。处理流常被称为高级流。

从图中可以看出,使用处理流进行输入/输出时,程序不会直接连接数据源,没有和实际的输入/输出节点连接。
只要使用相同的处理流,程序就可以采用相同的输入/输出代码来访问不同的数据源。
注:Java使用处理流来包装节点流使用了装饰器模式,使用处理流来包装不同的节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出功能。
节点流又称为包装流。
使用处理流的特点:
1.性能提高:主要增加缓冲的方式来提高输入/输出的效率。
2.操作便捷:处理流提供了一系列便捷的方法来一次输入/输出大批量的内容。
3.处理流可以建立在任何已存在的流基础之上,这就允许java应用程序采用相同的代码、透明的方式来访问不同的输入/输出流。

通过使用处理流,Java程序无需理会输入/输出节点是磁盘、网络还是其他输入输出设备,程序只要将这些节点流包装成处理流,就可以使用相同的输入输出代码来读写不同的输入输出设备的数据。
IO流03_流的分类和概述的更多相关文章
- -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
- java中的IO流(输入流与输出流)概述与总结
Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...
- java IO流的概念与分类
DataInputStream && ObjectInputStream 示例 https://blog.csdn.net/hoho_12/article/details/520543 ...
- IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO
内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
- Java IO 文件与流基础
Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...
- Java 基础 IO流(转换流,缓冲)
一,前言 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStr ...
- IO流(字节流,字符流,缓冲流)
一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流 这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: 二:字符字节 ...
- IO流----转换流、缓冲流
打开一个文本文件,另存为: Ansi就是系统默认编码(就是gbk) 建一个编码是utf-8的txt文件, 例: import java.io.FileWriter; import java.io.IO ...
随机推荐
- ThinkPHP中URL解析原理,以及URL路由使用教程!
几个概念: THINKPHP 是一个MVC框架,使用PATHINFO解析出分组名,模块名,方法名,以及参数. PATHINFO:就是 http://localhost/index.php/Home/I ...
- SUSE的SSHD配置及设置防火墙
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 如何关闭UINavigationController 向右滑动 返回上一层视图
说明一下: 我的nav 设置的rootview 是 tabbarcontroller,登录界面是push进去的,所以,在登录界面,如果靠近最左边 向右滑动 会出现 tabbarcontroller的视 ...
- 【转】python中常用第三方包os sys
1. os 这个模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下 ...
- Codeforces Round #321 (Div. 2) E. Kefa and Watch 线段树hash
E. Kefa and Watch Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/580/prob ...
- iOS开发——OC篇&协议篇/NSCoder/NSCoding/NSCoping
协议篇/NSCoder/NSCoding/NSCoping 协议声明类需要实现的的方法,为不同的类提供公用方法,一个类可以有多个协议,但只能有一个父类,即单继承.它类似java中的接口. 正式协议(f ...
- 初探 MySQL 的 Binlog
https://xcoder.in/2015/08/10/mysql-binlog-try/
- careercup-中等难度 17.11
17.11 给定rand5(),实现一个方法rand7().也即,给定一个产生0到4(含)随机数的方法,编写一个产生0到6(含)随机数的方法. 解法: 这个函数要正确实现,则返回0到6之间的值,每个值 ...
- android中的界面编程
主要是用View以及ViewGroup,同时ViewGroup又是View的子类,充当容器. 主要有两种方法控制view的行为: 1.在XML布局文件中通过XML属性进行控制 2.在Java代码中通过 ...
- MySQL(17):Select-union(联合查询)使用注意事项
1. 需求: 获得0115班所有的代课教师代课天数,结果按照升序排序:同时获得0228班,结果按照降序排序. (1)首先查询原来的0115班和0228班所有代课天数,如下: (2)使用un ...