第7章+输入输出.ppt
《第7章+输入输出.ppt》由会员分享,可在线阅读,更多相关《第7章+输入输出.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!第七章第七章输入输入/输出输出l流的概念流的概念l流的分类流的分类l文件文件l随机存取文件随机存取文件l对象串行化对象串行化lJavaNIO12/21/20221此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!7.1流式输入流式输入/输出输出l什么是流?什么是流?n流是从源到目的地的字节的有序序列。流是从源到目的地的字节的有序序列。12/21/20222此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!7.1流式输入流式输入/输出输出l流的特点流的
2、特点n流是一种顺序存取方式流是一种顺序存取方式n流中的字节依据先进先出,具有严格顺序流中的字节依据先进先出,具有严格顺序12/21/20223此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!7.1流式输入流式输入/输出输出l流的操作流的操作n读操作读操作n写操作写操作打开流打开流是否有数据是否有数据读操作读操作关闭流关闭流打开流打开流是否有输出数据是否有输出数据写操作写操作关闭流关闭流12/21/20224此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!7.1流式输入流式输入/输出输出l流的分类流的分类n根据流相对于程序的另一
3、个端点的位置根据流相对于程序的另一个端点的位置u节点流节点流u过滤流过滤流n根据流中的数据单位不同根据流中的数据单位不同u字节流字节流u字符流字符流n根据流的读写操作根据流的读写操作u输入流输入流u输出流输出流12/21/20225此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!7.1流式输入流式输入/输出输出l流的分类流的分类n根据流相对于程序的另一个端点的位置根据流相对于程序的另一个端点的位置u节点流:节点流:u过滤流:过滤流:lleHoNodeInputStreamFilterInputStreamread()以特定源为端点构造的输入输以特定源为端点构造
4、的输入输出流,它是一种最基本的流。出流,它是一种最基本的流。以其他已经存在的流为端点构造以其他已经存在的流为端点构造的输入输出流,也称为处理流的输入输出流,也称为处理流12/21/20226此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!7.1流式输入流式输入/输出输出l流的分类流的分类n根据流的读写操作根据流的读写操作u输入流:输入流:u输出流输出流可以从中读取数据的流称为可以从中读取数据的流称为输入流输入流可以向其中写入数据的流称可以向其中写入数据的流称为输出流为输出流12/21/20227此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你
5、将圆梦你将圆梦!7.1流式输入流式输入/输出输出l流的分类流的分类n根据流中的数据单位不同根据流中的数据单位不同u字节流字节流u字符流字符流流中的数据以流中的数据以8位字节为单位位字节为单位进行读写,以进行读写,以InputStream与与OutputStream为基础类为基础类流中的数据以流中的数据以16位字符为单位字符为单位进行读写,以位进行读写,以Reader与与Writer为基础类为基础类12/21/20228此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!字符流字符流l字符流处理以字符为单位进行的读写操作。字符流处理以字符为单位进行的读写操作。l字符
6、流处理的信息是基于文本的信息字符流处理的信息是基于文本的信息l字符流支持字符流支持Unicode中的任何字符中的任何字符lReader和和Writer是处理字符流的两个基本是处理字符流的两个基本类类ljava.io包中所有以包中所有以“Reader”和和“Writer”结尾的类都是处理字符流的类。结尾的类都是处理字符流的类。12/21/20229此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!字符流类型的输入流字符流类型的输入流12/21/202210此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!字符流类型的输出流字符流类型
7、的输出流12/21/202211此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!字节流字节流l字节流处理以字节为单位进行的数据读写操字节流处理以字节为单位进行的数据读写操作作lInputStream和和OutputStream是处理字节流是处理字节流的两个基本类的两个基本类ljava.io包中的所有以包中的所有以InputStream和和OutputStream结尾的类都是处理字节流的结尾的类都是处理字节流的类类12/21/202212此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!字节流类型的输入流字节流类型的输入流12/2
8、1/202213此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!字节流类型的输出流字节流类型的输出流12/21/202214此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!InputStreamljava.lang.Objectjava.io.InputStreamlpublicabstractclassInputStreamextendsObjectimplementsCloseablel此抽象类是表示字节输入流的所有类的超类。此抽象类是表示字节输入流的所有类的超类。需要定义需要定义InputStream子类的应用程序必子类
9、的应用程序必须总是提供返回下一个输入字节的方法。须总是提供返回下一个输入字节的方法。12/21/202215此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!InputStreaml构造方法构造方法publicInputStream()lInputstream类和类和Outputstream类都为抽象类都为抽象类,不能创建对象,可以通过子类来实例类,不能创建对象,可以通过子类来实例化。化。12/21/202216此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!InputStream类中的方法类中的方法l类类中中声明的方法声明的方
10、法:nabstractintread()从输入流中读取数据的下一个字节。从输入流中读取数据的下一个字节。nintread(byteb)从输入流中读取一定数量的字节,并将其存储从输入流中读取一定数量的字节,并将其存储在缓冲区数组在缓冲区数组b中。中。nintread(byteb,intoff,intlen)将输入流中最多将输入流中最多len个数据字节读入个数据字节读入byte数组。数组。12/21/202217此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!InputStream类中的方法类中的方法l类类中中声明的方法声明的方法:nintavailable()返
11、回此输入流下一个方法调用可以不受阻塞地返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。从此输入流读取(或跳过)的估计字节数。nvoidclose()关闭此输入流并释放与该流关联的所有系统资关闭此输入流并释放与该流关联的所有系统资源。源。nlongskip(longn)跳过和丢弃此输入流中数据的跳过和丢弃此输入流中数据的n个字节。个字节。12/21/202218此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!InputStream类中的方法类中的方法l类类中中声明的方法声明的方法:nvoidreset()将此流重新定位到最后一次对此
12、输入流调用将此流重新定位到最后一次对此输入流调用mark方法时的位置。方法时的位置。nvoidmark(intreadlimit)在此输入流中标记当前的位置。在此输入流中标记当前的位置。nbooleanmarkSupported()测试此输入流是否支持测试此输入流是否支持mark和和reset方法。方法。12/21/202219此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!OutputStreamlpublicabstractclassOutputStreamextendsObjectimplementsCloseable,Flushablel此抽象类是表示
13、输出字节流的所有类的超类。此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到输出流接受输出字节并将这些字节发送到某个接收器。某个接收器。l需要定义需要定义OutputStream子类的应用程序必子类的应用程序必须始终提供至少一种可写入一个输出字节须始终提供至少一种可写入一个输出字节的方法。的方法。12/21/202220此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!OutputStreaml构造方法构造方法publicOutputStream()lInputstream类和类和Outputstream类都为抽象类都为抽象类,不能创建
14、对象,可以通过子类来实例类,不能创建对象,可以通过子类来实例化。化。12/21/202221此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!OutputStreaml类中的成员方法类中的成员方法nvoidclose()关闭此输出流并释放与此流有关的所有系统资源。关闭此输出流并释放与此流有关的所有系统资源。nvoidflush()刷新此输出流并强制写出所有缓冲的输出字节。刷新此输出流并强制写出所有缓冲的输出字节。nvoidwrite(byteb)将将b.length个字节从指定的个字节从指定的byte数组写入此输出流。数组写入此输出流。nvoidwrite(by
15、teb,intoff,intlen)将指定将指定byte数组中从偏移量数组中从偏移量off开始的开始的len个字节写个字节写入此输出流。入此输出流。nabstractvoidwrite(intb)将指定的字节写入此输出流。将指定的字节写入此输出流。12/21/202222此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!标准的输入输出流标准的输入输出流java.lang.Object|+-java.lang.SystemnstaticPrintStreamerr 标准错误输出流标准错误输出流nstaticInputStreamin 标准输入流标准输入流nstat
16、icPrintStreamout 标准输出流标准输出流 12/21/202223此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!PrintStream类类java.lang.Object|+-java.io.OutputStream|+-java.io.FilterOutputStream|+-java.io.PrintStream12/21/202224此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!标准输入流标准输入流in lJava的标准输入的标准输入System.in是是InputStream类的对象类的对象l从键盘读
17、入数据从键盘读入数据Charch=System.in.read()l注意:注意:n必须对必须对IOException异常进行处理异常进行处理n返回的是返回的是16位整数值,低位字节是真正输入的数据,位整数值,低位字节是真正输入的数据,高位字节全是零高位字节全是零nSystem.in.read()的执行将使整个程序被挂起,直到用户的执行将使整个程序被挂起,直到用户从键盘输入数据才继续运行从键盘输入数据才继续运行12/21/202225此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!标准输出流标准输出流 outlJava的标准输出的标准输出System.out.是
18、打印输出流是打印输出流PrintStream类的对象。类的对象。nvoidprint(booleanb)打印打印boolean值。值。nvoidprintln()通过写入行分隔符字符串终止当前行。通过写入行分隔符字符串终止当前行。l实例实例7-512/21/202226此刻打盹,你将做梦;而此刻学习,此刻打盹,你将做梦;而此刻学习,你将圆梦你将圆梦!流的套接数数据据源源FileInputStreamBufferedInputStreamDataInputStream程程序序程程序序DataOutputStreamBufferedOutputStreamFileOutputStream数数据据源
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出
限制150内