【概述】

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. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  2. java中的IO流(输入流与输出流)概述与总结

    Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

  3. java IO流的概念与分类

    DataInputStream && ObjectInputStream 示例 https://blog.csdn.net/hoho_12/article/details/520543 ...

  4. IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO

    内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...

  5. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  6. Java IO 文件与流基础

    Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...

  7. Java 基础 IO流(转换流,缓冲)

    一,前言 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStr ...

  8. IO流(字节流,字符流,缓冲流)

    一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流   这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:   二:字符字节 ...

  9. IO流----转换流、缓冲流

    打开一个文本文件,另存为: Ansi就是系统默认编码(就是gbk) 建一个编码是utf-8的txt文件, 例: import java.io.FileWriter; import java.io.IO ...

随机推荐

  1. C#利用API制作类似QQ一样的右下角弹出窗体

    C#利用API制作类似QQ一样的右下角弹出窗体 (2009-03-21 15:02:49) 转载▼ 标签: 杂谈 分类: .NET using System;using System.Collecti ...

  2. 从经典问题来看 Copy 方法(转)

    来自:Gua | 瓜地 链接:https://desgard.com/copy/  在初学 iOS 的时候,可能会被灌输这么一个常识,切记 NSString 的 property 的修饰变量要写作 c ...

  3. smarty3--registerPlugin()函数报错问题

    smarty版本:smarty3.1.30 registerPlugin错误信息: Notice: Trying to get property of non-object in E:\Joomla\ ...

  4. 手把手教你入门mac idea

    一.前沿 去年入职后, 公司有很多人使用的是idea , 而不是eclipse. 之前就想转向idea, 但一直没转过来~~原因是团队的人提倡用开源eclipse.现在下定决心转向idea. 虽然, ...

  5. Css基础-类选择器

    类选择器以一个.显示 <p class="pclass">这是第一个class</p> .pclass { color:red; } <div cla ...

  6. 通过存储过程进行分页查询的SQL示例

    --创建人:zengfanlong --创建时间:-- :: --说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取) ALTER PROCEDURE [UP_GasBottles_GetS ...

  7. linux设置tomcat开机自动启动

    1.修改/etc/rc.d/rc.local,使用vi /etc/rc.d/rc.local 命令2.在/etc/rc.d/rc.local文件最后添加下面两行脚本 export JAVA_HOME= ...

  8. IPAD之分割视图 SplitViewController

    转载自:http://www.w3cschool.cc/ios/att-ios-ui-splitview-htm.html 1 分割视图的使用 分割视图是 iPad 的特定视图控制器用于管理两个视图控 ...

  9. careercup-中等难度 17.4

    17.4 编写一个方法,找出两个数字中最大的那一个.不得使用if-else或其他比较运算符. 解法: 我们可以通过一步步的分析来将需要用到的if-else和比较操作符去掉: If a > b, ...

  10. combo参数配置_手册

    combotree : 设置为多选框: $('#menu-combotree').combotree({multiple:true}).combotree('loadData', menuListJs ...