IO流详解(半教材类型)
这两天学习了IO流,整理了一些理论知识点,仅供参考。
java流概述
一 流
从操作系统层面和文件系统,数据保存相关的是所有语言都具备的一个基本功能,java专门开发了一个包:java.io.*;java流是Sun/oracle公司专门为文件操作,数据传输开发出来的一些类,但是取了个特别的名字,叫流(继承于unix->Linux),只要记住他们就是一些类就可以了没什么特别的;所有的打开的流都必须关闭,因为打开的流是很耗费资源的,并且很不安全;
流中的操作对象是指内存中当前操作的程序而言的,输入是指往程序中导入数据,输出是当前程序中的数据导出到外部,这个外部是指:内存中别的程序,内存中的缓存,硬盘,U盘,远程连接等,但是我们不管这些细节,直接导出就可以,由java底层处理
I:input:什么叫input输入流
这个是以当前内存中运行那一段程序为标准,从外部写入的数据叫输入
O:output:什么叫output输出流:往外部写出的数据叫输出
二 流类架构图(常用的十六个流)
所有的的类都继承Closeable接口,用于关闭流;
Closeable:意思是需要程序员去手动关闭的程序
所有的输出流在继承Closeable的同时,也都继承了Flushable,用于将缓存的数据强行刷入文件
接口
Closeable,Flushable
基础实现类,原始类,打开连接,读取数据
FileInputStream
FileOutputStream
FileReader
FileWriter
包装流,在原始的基础上进行强化
缓存,以加快速度,多次读,一次写,为什么?硬盘等物理设备,读比写要快.同时因为一次只能读8-16bit,所以我们开辟个缓冲区,读一片,然后一次写入
BufferedReader
BufferedWriter
BufferedInputStream
BufferedOutputStream
数据来源于内存
DataInputStream
DataOutputStream
序列化
ObjectInputStream
ObjectOutputStream
转换类:讲字节流转换成字符流
InputStreamReader
OutputStreamWriter
格式化输出:要对数据输出前进行排版
PrintWriter
PrintStream //标准输出类,默认把数据输出到控制台
java中的流类全部都可以划分成这四个类:
InputStream,OutputStream:字节流
Reader,Writer:字符流
三 类的分类
原始流类:用于打开连接,里面不能传入一个流,而是一个具体的数据定位,是直接操作数据的,
四个原始流类:
FileInputStream
FileOutputStream
FileReader
FileWriter
别的都是包装流
包装类(包裹类):在连接基础上进行操作,里面传入是一个流类,也就是一个类,对象,要用到多态,就是包装流,包装流不能独立存在,对原始流进行在加工处理的
用PowerDesigner写的每个流及与接口的关系
最后用Xmind总结一下:


以上就是我对IO流的总结,只是一个大概,具体的操作没有,后面会加进来,望斧正!
IO流详解(半教材类型)的更多相关文章
- 基于JavaSE阶段的IO流详解
1.IO流基本概述 在Java语言中定义了许多针对不同的传输方式,最基本的就是输入输出流(俗称IO流),IO流是属于java.io包下的内容,在JavaSE阶段主要学下图所示的: 其中从图中可知,所有 ...
- IO流详解
目录 IO流 IO流概述及其分类 IO概念 流按流向分为两种: 流按操作类型分为两种: 常用的IO流类 字节流的抽象父类: 字符流的抽象父类: InputStream & FileInputS ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java之IO流详解(一)
IO流的分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 InputStream 字节输出流 OutputStream 字符流 字符输入流 Reader 字 ...
- Java io流详解二
原文地址https://www.cnblogs.com/xll1025/p/6418766.html 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间 ...
- Java IO流详解(五)——缓冲流
缓冲流也叫高效流,是处理流的一种,即是作用在流上的流.其目的就是加快读取和写入数据的速度. 缓冲流本身并没有IO功能,只是在别的流上加上缓冲效果从而提高了效率.当对文件或其他目标频繁读写或操作效率低, ...
- Java IO流详解(三)——字节流InputStream和OutPutStream
我们都知道在计算机中,无论是文本.图片.音频还是视频,所有的文件都是以二进制(字节)形式存在的,IO流中针对字节的输入输出提供了一系列的流,统称为字节流.字节流是程序中最常用的流.在JDK中,提供了两 ...
- Java IO流详解(一)——简单介绍
文件在程序中是以流的形式来传输的.所以用Java来传输文件就得使用到Java IO流. 1.流的概念和作用 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象<Thinkin ...
- Java之IO流详解
IO流 Input/Output 完成输入/输出 应用程序运行时——数据在内存中 ←→ 把数据写入硬盘(磁带) 内存中的数据不可持久保存的 输入:从外部存储器(硬盘.磁带.U盘)把数据读入内存. ...
随机推荐
- 用UGN3503霍尔器件制作的数字指南针_电路图
本文介绍了用两个UGN3503型霍尔器件设计制作的数字指南针的设计目的.系统结构和工作原理,以及各主要器件的使用方法.本系统包括UGN3503型霍尔器件.TLC0832 A/D转换器.单片机控制.液晶 ...
- Qt QDebug :Cannot retrieve debugging output!
调试Qt程序时用Qdebug类输出调试信息: qDebug("read My Com"); 这个问题是个小问题,其实跟程序没关系.当你同时开多个Qt程序(Creator编程 ...
- 射频识别技术漫谈(9)——动物标签HDX【worldsing笔记】
半双工(HDX,Half Duplex)技术是ISO11784/11785中规定的另一种标签与读写器之间的通讯方式.读写器先打开射频场对标签充电以激活标签,然后关闭磁场,标签在读写器磁场关闭的情况下向 ...
- Web 应用的安全性
Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分.用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统.用户授权 ...
- 移动端rem布局和百分比栅格化布局
移动端的rem: 使用方法: 设置html的font-size,根据浏览器分辨率缩放 设置根元素font-size为100px这样好用的值,不要设为10px这样的: 然后获取浏览器的分辨率,也就是视口 ...
- PowerDesigner 面向对象模型(OOM)
PowerDesigner 面向对象模型(OOM)说明 nulljavasystemstringpowerbuilderclass 目录(?)[+] 一. OOM 简介 Object- ...
- (转)java读取数据库表信息,子段
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- SVN遇到的几个错误问题解决办法
1.svn更新被锁 清理之后陷入死循环问题 Attempted to lock an already-locked dir svn: Working copy 'E:\Workspaces\eclip ...
- RGB配色表
RGB配色表 查找请按 Ctrl+f 实效 英文名称 RGB 16色 Snow 255 250 250 #FFFAFA GhostWhite 248 248 255 #F8F8FF Whi ...
- tomcat的几种部署方法
原文:http://blog.163.com/pg_roger/blog/static/185884389201172921211937/ 1.将应用文件夹或war文件(均指编译好的文件)塞到tomc ...