IO流继承关系图

IO概述

IO流是用来处理设备上数据的输入输出。

具体设备有:硬盘,内存,键盘录入等等。

IO流的具体分类:

1,根据处理的数据类型不同分为:字节流和字符流,字节流读取的最小单位是一个字节(1byte=8bit),而字符流一次可以读取一个字符(1char=2byte=16bit)

2,根据流向不同分为:输入流和输出流,注意:输入输出的参照对象是java程序

3,按照功能的不同分,分节点流和过滤流,节点流是直接从一个源读写数据的流(这个流没有经过包装和修饰),过滤流是在对节点流封装的基础上的一种流,FileInputStream是一个节点流,可以直接从文件读取数据,但是BufferedInputStream可以包装FileputStream,使得其有缓冲功能。

字符流的由来:

因为文件编码的不同,而有了对字符进行高效操作的字符流对象。

原理:其实就是基于字节流读取字节时,去查了指定的码表。

字节流和字符流的区别:

1,字节流读取的时候,读到一个字节就返回一个字节。

字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。

2,字节流可以处理多有类型数据,如图片,MP3,avi。

而字符流只能处理字符数据。

结论:只要是纯文本数据,就要优先考虑使用字符流。除此之外都使用字节流。

流分类的关系

IO体系所具备的基本功能就只有两个:读和写

1,字节流

InputStream(读),OutputStream(写)。

2字符流

Reader(读),Writer(写)。

定义体系中,这四个体系派生出来的子类后缀名都是体系父类名。而前缀名就是这个子类对象的功能。

补充说明:关于流向与读写的理解

就是读到底对应什么,其实流向中的输入输出时针对java程序而言的,可以这样理解,程序是在内存中运行的,那么就可以相对于内存而言,那么输入就是数据进入内存,从硬盘到内存的数据当然是读了。而输出就是数据离开内存,从内存到硬盘当然就是写操作啦。

这样很容易的就把读和输入联系起来,把写和输出联系起来。记住:输入输出的主体是程序,而程序是在内存中运行的,这样就很好理解了。

IO流总结笔记一的更多相关文章

  1. 20.IO流部分笔记

    20.IO流部分笔记 2018/09/06 1.IO流  1.1 创建字节输出流对象,如果没有就自动创建一个 FileOutputStram fos = new FileOutputStram(&qu ...

  2. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  3. IO流小笔记

    File file=new File ();括号里面写路径 exists()判断文件是否存在:isfile()是判断已经存在的文件是文件还是目录: mkdir()和createNewFile()区别在 ...

  4. java中File IO流的笔记

    1.File文件的属性和操作 boolean exists( )  判断文件或目录是否存在boolean isFile( )  判断是否是文件boolean isDirectory( ) 判断是否是目 ...

  5. IO流学习笔记(一)之FileWriter与FileReader

    IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按照操作数据分为两种:字节流和字符流 流按流向分为:输入流和输出流 输入流和输出流是相对于 ...

  6. IO流学习笔记

    1.File类 文件和目录路径名的抽象表示形式. 4种构造方法 File(File parent, String child) File(File parent, String child) File ...

  7. IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo

    在之前的学习笔记(http://blog.csdn.net/megustas_jjc/article/details/72853059)中,FileWriter与FileReader的Demo使用的中 ...

  8. IO流总结笔记三

    ​ 字节流: 抽象基类:InputStream, OutputStream. 字节流可以操作任何数据.注意:字符流使用的数组是字符数组.Char [] chs 字节流使用的数组是字节数组.Byte [ ...

  9. IO流总结笔记二

    ​ Reader |--InputStreamReader |--FileReader:专门用于处理文件的字符读取流对象 Writer |--OutputStreamWriter |--FileWri ...

随机推荐

  1. ubuntu 程序后台运行几个方法

    51 1. 程序后加上“&” ,即 “./myjob &”, 将命令放入到一个作业队列中,可以用命令“jobs” 查看 2. 将1中的命令放在 “()”中, 即 “(./myjob & ...

  2. 传递闭包(例题POJ3660)

    概念: 传递一种关系,例如 a//b   b//c  则 a//c 从已知的初始关系中  推出最后所有对象之间的关系 初始时把所有有关系的标记为1 即a[i][j] = 1 然后用Floyd 推出最后 ...

  3. Java OOM 常见情况

    Java OOM 常见情况 原文:https://blog.csdn.net/qq_42447950/article/details/81435080 1)什么是OOM?  OOM,全称“Out Of ...

  4. 【BZOJ3551】【BZOJ3545】 【ONTAK2010】 Peaks (kruskal重构树+主席树)

    Description ​ 在\(Bytemountains\)有\(~n~\)座山峰,每座山峰有他的高度\(~h_i~\). 有些山峰之间有双向道路相连,共\(~m~\)条路径,每条路径有一个困难值 ...

  5. 分数模板(C++模板)

    貌似没什么用...没有多少毒瘤题要输出分数吧... update:真的有,而且在NOIP模拟赛里出现了!写double的卡精度到怀疑人生! 可以套个兼容性比较好的高精度模板进来. #include&l ...

  6. SharePoint 2013 APP 开发示例 (三)使用远程的web资源

    在这个示例里我们将详细介绍 TokenHelper 类, 我们将看到它是怎么简单地从远程web站点访问SharePoint的.我们还将取到它的一些值.这将帮助我们理解连接是怎么被构造的,同时也方便我们 ...

  7. 洛谷 P2491消防 解题报告

    P2491 消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个 ...

  8. cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例

    cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...

  9. A1023. Have Fun with Numbers

    Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, wit ...

  10. HashMap 与 ConcurrentHashMap 在初始化不同大小容量时,实际分配的空间情况

    HashMap.java  int capacity = 1;      int initialCapacitys[] = {1,2,3,4,5,6,7,8,9,10,11,13,15,16,17,2 ...