IO流总结笔记一

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流总结笔记一的更多相关文章
- 20.IO流部分笔记
20.IO流部分笔记 2018/09/06 1.IO流 1.1 创建字节输出流对象,如果没有就自动创建一个 FileOutputStram fos = new FileOutputStram(&qu ...
- JAVA.IO流学习笔记
一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
- IO流小笔记
File file=new File ();括号里面写路径 exists()判断文件是否存在:isfile()是判断已经存在的文件是文件还是目录: mkdir()和createNewFile()区别在 ...
- java中File IO流的笔记
1.File文件的属性和操作 boolean exists( ) 判断文件或目录是否存在boolean isFile( ) 判断是否是文件boolean isDirectory( ) 判断是否是目 ...
- IO流学习笔记(一)之FileWriter与FileReader
IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按照操作数据分为两种:字节流和字符流 流按流向分为:输入流和输出流 输入流和输出流是相对于 ...
- IO流学习笔记
1.File类 文件和目录路径名的抽象表示形式. 4种构造方法 File(File parent, String child) File(File parent, String child) File ...
- IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo
在之前的学习笔记(http://blog.csdn.net/megustas_jjc/article/details/72853059)中,FileWriter与FileReader的Demo使用的中 ...
- IO流总结笔记三
字节流: 抽象基类:InputStream, OutputStream. 字节流可以操作任何数据.注意:字符流使用的数组是字符数组.Char [] chs 字节流使用的数组是字节数组.Byte [ ...
- IO流总结笔记二
Reader |--InputStreamReader |--FileReader:专门用于处理文件的字符读取流对象 Writer |--OutputStreamWriter |--FileWri ...
随机推荐
- fatal error: matio.h: No such file or directory
http://blog.csdn.net/zziahgf/article/details/72900948 $ sudo apt-get install libmatio-dev 或源码安装: # 下 ...
- 类的三大方法 与__init___
静态方法 存储在类中 实例方法 与类方法都能调用 不需要 传递self 相当于在类里面写了一个函数 类方法 存储在类中 只能是类调用 普通方法 存储在类中 由实例对象使用 在实例化类的时候 就相 ...
- Colored Sticks POJ - 2513(trie树欧拉路)
题意: 就是无向图欧拉路 解析: 不能用map..超时 在判断是否只有一个联通的时候,我比较喜欢用set,但也不能用set,会超时,反正不能用stl emm 用trie树来编号就好了 #include ...
- Ambiguous handler methods mapped for HTTP
前端访问的 controller 地址没有加方法名导致找不到. Servlet.service() for servlet [spring] in context with path [/ssmDem ...
- 【POJ3045】Cow Acrobats(贪心)
BUPT2017 wintertraining(16) #4 B POJ - 3045 题意 n(1 <= N <= 50,000) 个牛,重wi (1 <= W_i <= 1 ...
- 【转载】LCT
原标题:LCT(Link-Cut Tree)详解(蒟蒻自留地) 出处:https://blog.csdn.net/saramanda/article/details/55253627 如果你还没有接触 ...
- 【BZOJ4161】Shlw loves matrixI (常系数齐次线性递推)
[BZOJ4161]Shlw loves matrixI (常系数齐次线性递推) 题面 BZOJ 题解 \(k\)很小,可以直接暴力多项式乘法和取模. 然后就是常系数齐次线性递推那套理论了,戳这里 # ...
- OneProxy 管理
-----client-----------haproxy---------mysql1----------mysql2------192.168.1.250 192.168.1.1 192.168. ...
- Java:终于找到了在alloy中的JFileChooser中的弹出式菜单不显示文字的解决办法
alloy界面可以说是我写过的最漂亮的一种JAVA界面. 可惜不知为什么,至从几年前推出1.4版后,就再也没有更新了. 随着java版本的升级,一直很担心alloy有一天不再适用于java的最新版. ...
- PD915温度太高,通过设置BIOS降底CPU的核心电压来降温。
由于对电脑配置不是很懂,去年去配了台电脑,用的CPU是PD915,不用不知道,一用吓一跳. PD915在冬天的时候,运行起来温度大概在30多度,感觉很正常. 可是一到了夏天,温度就升到了70到80度之 ...