黑马程序员——JAVA学习笔记---IO处理方式
2015-07-12 14:35
549 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
图 输入模式
图 输出模式
图 InputStream类的层次结构
mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。
reset()方法:将输入指针返回到当前所做的标记处。
skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数。
markSupported()方法:如果当前流支持mark()/reset()操作,就返回true。
close()方法:关闭此输入流并释放与该流关联的所有系统资源。
说明:并不是所有的InputStream类的子类都支持InputStream中定义的所有方法(如skip()、mark()、reset()等),这些方法只对某些子类有用。
图 Reader类的层次结构
Reader类中的方法与InputStream中的方法类似,读者在需要时可查看JDK文档。
图 OutputStream类的层次结构
write(int b)方法:将指定的字节写入此输出流。
write(byte[] b)方法:将b.length个字节从指定的byte数组写入此输出流。
write(byte[] b , int off , ,int len)方法:将指定byte数组中从偏移量off开始的len个字节写入此输出流。
flush()方法:彻底完成输出并清空缓存区。
close()方法:关闭输出流。
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。Writer类的层次结构如图所示。
图 Writer类的层次结构
一 I/O的基本模式
Java由数据流处理输入输出模式。输入模式是由程序创建某个信息来源的数据流并打开该数据流获取指定信息来源的数据,这些数据来源可以是文件、网络、压缩包或者其他数据源,如图所示。
图 输入模式
与输入模式相反,输出模式是由程序创建某个输出对象的数据流,并打开该数据对象(即输出目标),将数据写入数据流。数据流对象会将数据存储到相应的目标中。这些输出目标可以是文件、网络、压缩包、控制台或其他数据输出目标,如图所示。
图 输出模式
二 Java提供的流类
Java语言定义了许多类专门负责各种方式的输入和输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类,而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。
三 输入流
InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类的具体层次结构如图所示。
图 InputStream类的层次结构
mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。
reset()方法:将输入指针返回到当前所做的标记处。
skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数。
markSupported()方法:如果当前流支持mark()/reset()操作,就返回true。
close()方法:关闭此输入流并释放与该流关联的所有系统资源。
说明:并不是所有的InputStream类的子类都支持InputStream中定义的所有方法(如skip()、mark()、reset()等),这些方法只对某些子类有用。
Java中的字符是Unicode编码,是双字节的。InputStream是用来处理字节的,在处理字符文本时不是很方便。Java为字符文本的输入提供了单独一套专门的类Reader,但Reader类并不是InputStream类的替换者,只是在处理字符串时简化了编程。Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类,Reader类的具体层次结构如图所示。
图 Reader类的层次结构
Reader类中的方法与InputStream中的方法类似,读者在需要时可查看JDK文档。
四 输出流
OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。OutputStream类的层次结构如图所示。
图 OutputStream类的层次结构
OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异常。下面对OutputStream类中的方法做一个简单的介绍。
write(int b)方法:将指定的字节写入此输出流。
write(byte[] b)方法:将b.length个字节从指定的byte数组写入此输出流。
write(byte[] b , int off , ,int len)方法:将指定byte数组中从偏移量off开始的len个字节写入此输出流。
flush()方法:彻底完成输出并清空缓存区。
close()方法:关闭输出流。
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。Writer类的层次结构如图所示。
图 Writer类的层次结构
相关文章推荐
- java 学习笔记(入门篇)_java的安装与配置
- java学习第一节知识点总结(配置环境等)
- [JAVA学习笔记] 第三章 语法入门
- [JAVA学习笔记] 第四章 认识对象
- [Java学习笔记] 为什么.length是数组的成员,是字符串的方法?
- [Java学习笔记] Java中的强制转换
- 黑马程序员——(JAVA开发的前奏)JAVA概述与环境的配置图文说明
- 黑马程序员——IO流体系概览
- 黑马程序员——设计模式之模板方法设计模式
- 黑马程序员——设计模式之单例设计模式
- 黑马程序员——JAVA基础---常量与变量
- 黑马程序员——JAVA基础---类与对象
- 黑马程序员——JAVA基础---数组
- 【Java学习笔记】一个初学者的学习历程,分享学习JAVA心得
- 黑马程序员java学习第二天,java入门介绍
- 黑马程序员java学习第三天,函数
- 黑马程序员java学习第六天,static静态的使用及单例设计模式
- Java核心技术学习笔记
- 深入理解java虚拟机学习笔记1-走进jajva
- java学习第一个程序HelloWorld