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盘)把数据读入内存. ...
随机推荐
- 第九章、文件与文件系统的压缩与打包 3. 打包命令: tar
打包命令: tar gzip 与 bzip2 也能够针对目录来进行压缩, 不过,这两个命令对目录的压缩指的是『将目录内的所有文件 "分别" 进行压缩』! 将多个文件或目录包成一个大 ...
- soliworks三维机柜布局(一)创建设备型号库
以某直升机电气系统为例:为电路中的各个设备创建设备型号库是进行三维线束设计的前提之一(如下图所示:窗口中箭头所指的3D部件一定要为每个设备都添加) 设备只有添加了3d模型,在solidworks进行机 ...
- hdoj 2045 不容易系列之(3)—— LELE的RPG难题
不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- [css]《CSS知多少》
http://www.cnblogs.com/wangfupeng1988/p/4325007.html
- Swift基本语法以及与OC的比较
一.注释: 1.单行注释和OC一致. 2.块注释中有与OC不同点:可以嵌套注释 二.常量和变量: 1.常量:初始化后可读不可写 let 2.变量:初始化后可读可写 var //不需要指定类型,系统会自 ...
- Asp.net中使用资源文件实现网站多语言
首先需要新建一个ASP.NET Web Application.然后右键项目文件Add->Add ASP.NET Folder->App-GlobalResources. 新建好资源文件夹 ...
- 【转】来自《轻松scrum之旅》的敏捷开发总结
敏捷开发的核心价值观是,软件开发最重要的是给用户提供有价值的.可以工作的软件.如何保证提供有价值的软件,是通过反馈机制来完成的.这一点,我们体会很深.自从采用敏捷开发以后,我们比以前更有意识地希望得到 ...
- Java正則表達式入门
众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...
- 基于反射实现自己主动化restful开发
[Author]: kwu 基于反射实现自己主动化restful开发,通用的仅仅须要写查询数据库的sql.并增加相应的javabean实现的高速restful服务的开发. 1.编写数据库的查询sql. ...
- eclipse代码提示框背景色改动
因为个人习惯,喜欢把eclipse的文本编辑框背景调成全黑色,可是代码提示框的默认背景色也是黑色.所以两者就冲突了.导致看不到代码提示框的内容. 后来发现代码提示框的背景色能够改动.改动内容例如以下: ...