IO输入输出流实用教案

上传人:鲁** 文档编号:570669285 上传时间:2024-08-05 格式:PPT 页数:41 大小:773.50KB
返回 下载 相关 举报
IO输入输出流实用教案_第1页
第1页 / 共41页
IO输入输出流实用教案_第2页
第2页 / 共41页
IO输入输出流实用教案_第3页
第3页 / 共41页
IO输入输出流实用教案_第4页
第4页 / 共41页
IO输入输出流实用教案_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《IO输入输出流实用教案》由会员分享,可在线阅读,更多相关《IO输入输出流实用教案(41页珍藏版)》请在金锄头文库上搜索。

1、第一(dy)部分第一(dy)章Java入门基础第二章异常第三章JavaApplet类型第四章图形用户界面GUI(一)AWT第五章Java中的事件处理机制第六章图形用户界面GUI(二)Swing第1页/共40页第一页,共41页。第七章多线程第八章I/O输入输出流第九章Java数据库连接(JDBC)第十章Java网络(wnglu)编程第二部分第一章JavaAPI第二章Java与多媒体第三章JavaBean基础第2页/共40页第二页,共41页。第八章I/O输入输出流8.1流的概念8.2字节流、字符(zf)流和预订义流8.2.1字节流8.2.2字符(zf)流8.2.3预订义流8.3File类8.4In

2、putStream和OutputStream8.4.1FileInputStream8.4.2FileOutputStream第3页/共40页第三页,共41页。第八章I/O输入输出流8.5Reader和Writer8.5.1FileReader8.5.2FileWriter8.6RandomAccessFile类8.7PipedInputStream和PipedOutputStream8.8过滤(gul)流和节点流8.8.1过滤(gul)流和节点流8.8.2BufferedInputStream和BufferedOutputStream8.8.3DataInputStream和DataOutp

3、utStream第4页/共40页第四页,共41页。8.1流的概念(ginin)流概念的理解(lji)流的分类按流动的方向分为输入流和输出流按流动的数据类型分为字符流和字节流按流的建立方式和工作原理分为节点流和过滤流第5页/共40页第五页,共41页。8.2字节(zji)流、字符流和预定义流字节流字节流提供了对字节进行输入输出处理的方法。按照传输的方向字节流可以分为(fnwi)InputStream和OutputStream。其中InputStream是所有输入字节流的父类,OutputStream是所有输出字节流的父类。在InputStream和OutputStream中定义了输入字节流和输出字

4、节流最基本的方法,他们是抽象类。第6页/共40页第六页,共41页。8.2字节(zji)流、字符流和预定义流输入字节(zji)流的类层次图第7页/共40页第七页,共41页。8.2字节流、字符(zf)流和预定义流输出(shch)字节流的类层次图第8页/共40页第八页,共41页。8.2字节流、字符(zf)流和预定义流字符流字符流提供(tgng)了对字符进行输入输出处理的方法。字节流与字符流主要的区别是他们的处理方式。所有的字节流都是基于字节对数据进行处理,而实际使用中很多情况我们处理的数据是文本字符,所以Java提供(tgng)了基于字符处理的字符流。第9页/共40页第九页,共41页。8.2字节流、

5、字符(zf)流和预定义流按照传输(chunsh)的方向字符流可以分为Reader和Writer。其中Reader是所有输入字符流的父类,Writer是所有输出字符流的父类。在Reader和Writer中定义了输入字符流和输出字符流最基本的方法。第10页/共40页第十页,共41页。8.2字节(zji)流、字符流和预定义流输入(shr)字符流的类层次图第11页/共40页第十一页,共41页。8.2字节流、字符(zf)流和预定义流输出(shch)字符流的类层次图第12页/共40页第十二页,共41页。8.2字节(zji)流、字符流和预定义流预订义流Java程序默认导入包,这个包中有一个System类,这

6、个类包含三个预定义静态常量,分别(fnbi)是in、out和err。System.in是标准输入流,默认设备是键盘。System.out是标准输出流,默认设备是控制台。System.err是标准错误流,默认设备是控制台。第13页/共40页第十三页,共41页。8.3File类File类Java中的File类指文件和目录的集合。Java语言中通过File类来建立与磁盘文件的联系。File类主要用来获取文件或者目录的信息,File类的对象本身不提供对文件的处理功能,要想对文件实现(shxin)读写操作需要使用输入输出流。第14页/共40页第十四页,共41页。8.3File类注意:Java能正确处理U

7、NIX和Windows/DOS约定路径分隔符。如果在Windows版本的Java下用斜线(/),路径处理依然正确。记住( jzh),如果你用Windows/DOS使用反斜线()的约定,你需要在字符串内使用它的转义序列()。Java约定是用UNIX和URL风格的斜线来作路径分隔符。第15页/共40页第十五页,共41页。8.4InputStream和OutputStreamFileInputStreamFileInputStream是InputStream类的子类。常用的构造方法如下:FileInputStream(Stringname)使用指定的文件名name创建一个FileInputStrea

8、m的对象,如果(rgu)文件不存在会产生FileNotFoundException。FileInputStream(Filefile)使用指定的文件对象来创建一个FileInputStream的对象,如果(rgu)文件不存在会产生FileNotFoundException。第16页/共40页第十六页,共41页。8.4InputStream和OutputStream下面的例子创建了两个使用同样磁盘文件且各含一个(y)上述构造方法的FileInputStream对象:FileInputStreamf1=newFileInputStream(hello.txt)Filef=newFile(hello

9、.txt);FileInputStreamf2=newFileInputStream(f);尽管第一个(y)构造方法可能更常用到,第二个构造方法允许在把文件赋给输入流之前用File对象的方法更进一步检查文件,例如判断文件是否存在。第17页/共40页第十七页,共41页。8.4InputStream和OutputStreamFileInputStream的常用方法:intread()如果(rgu)下一个字节可读则返回一个整型,遇到文件尾时返回-1intread(bytebuffer)试图读取个字节到buffer中,并返回实际成功读取的字节数。遇到文件尾时返回-1intread(bytebuffer

10、,intoffset,intnumBytes)试图读取buffer中从bufferoffset开始的numBytes个字节,返回实际读取的字节数。遇到文件尾时返回-1voidclose()关闭输入源。关闭之后的读取会产生IOException异常第18页/共40页第十八页,共41页。8.4InputStream和OutputStreamFileOutputStreamFileOutputStream是OutputStream类的子类。常用的构造方法如下:FileOutputStream(Stringname)使用指定的文件名name创建一个FileInputStream的对象。FileOutp

11、utStream(Filefile)使用指定的文件对象来创建一个FileInputStream的对象。FileOutputStream的创建不依赖于文件是否存在。在创建对象时FileOutputStream在打开输出(shch)文件之前创建它。第19页/共40页第十九页,共41页。8.4InputStream和OutputStreamFileOutputStream的常用方法:voidclose()关闭输出流。关闭后的写操作会产生IOException异常voidflush()刷新输出缓冲区voidwrite(intb)向输出流写入单个字节。注意参数是一个整型数,它允许你不必把参数转换成字节型

12、就可以调用write()voidwrite(bytebuffer)向一个输出流写一个完整的字节数组voidwrite(bytebuffer,intoffset,intnumBytes)写数组buffer以bufferoffset为起点的numBytes个字节区域(qy)内的内容第20页/共40页第二十页,共41页。8.5Reader和Writer字符流为基于字符的输入输出处理提供了丰富(fngf)的功能,而Reader和Writer是所有字符流的基类。Reader和Writer都是抽象类,它们定义了字符流的一些常用方法(见书表8-5、表8-6)。第21页/共40页第二十一页,共41页。8.5R

13、eader和WriterFileReaderFileReader类是Reader类的子类,它可以对文件进行读取。常用的构造方法如下:FileReader(Stringname)使用指定的文件名name创建一个FileReader的对象,如果文件不存在会产生(chnshng)FileNotFoundException。FileReader(Filefile)使用指定的文件对象来创建一个FileReader的对象,如果文件不存在会产生(chnshng)FileNotFoundException。FileReader常用的方法参考Reader类。第22页/共40页第二十二页,共41页。8.5Read

14、er和WriterFileWriterFileWriter类是Writer类的子类,它可以对文件进行( jnxng)写入。它常用的构造方法如下:FileWriter(Stringname)使用指定的文件名name创建一个FileWriter的对象。FileWriter(Filefile)使用指定的文件对象file创建一个FileWriter的对象。FileWriter类的创建不依赖于文件存在与否。在创建文件之前,FileWriter将在创建对象时打开它来作为输出。第23页/共40页第二十三页,共41页。8.6RandomAccessFile类RandomAccessFile类有时候(shhou

15、)必须对文件的某些部分进行读取或者写入的操作,也就是进行随机存取,即读写文件的位置要能够在文件中随意的移动。而我们前面提到的输入输出流都只能对文件进行顺序的读写,当要对文件进行随机存取的时候(shhou)我们使用RandomAccessFile类来进行处理。第24页/共40页第二十四页,共41页。8.6RandomAccessFile类类RandomAccessFile的声明(shngmng)为:publicclassRandomAccessFileextendsObjectimplementsDataInput,DataOutput接口DataInput中定义的方法主要包括从流中读取基本类型

16、的数据、读取一行数据、或者读取指定长度的字节数。如:readBoolean()、readInt()、readLine()、readFully()等。接口DataOutput中定义的方法主要是向流中写入基本类型的数据、或者写入一定长度的字节数组。如:writeChar()、writeDouble()、write()等。注意:RandomAccessFile可对文件实现读和写两种操作。第25页/共40页第二十五页,共41页。8.6RandomAccessFile类RandomAccessFile类的常用构造方法:RandomAccessFile(Stringname,Stringmode)name

17、是文件名,mode是打开方式,例如“r”表示(biosh)只读,“rw”表示(biosh)可读写。RandomAccessFile(Filefile,Stringmode)file是文件对象,mode是打开方式,例如“r”表示(biosh)只读,“rw”表示(biosh)可读写。第26页/共40页第二十六页,共41页。8.6RandomAccessFile类RandomAccessFile类操作文件指针的常用方法:longgetFilePointer()用于得到(ddo)当前的文件指针voidseek(longpos)用于移动文件指针到指定的位置,调用seek()方法后,接下来的读或写操作将在

18、文件的新位置发生intskipBytes(intn)使文件指针向前移动指定的n个字节第27页/共40页第二十七页,共41页。8.7PipedInputSream和PipedOutputStream管道流管道流不同于I/O流和网络流,它的本质是内存中的一块存储数据的结构体。如果写线程当且仅当管道满的时候会阻塞,读线程当且仅当管道空的时候会阻塞。管道流,用于线程间的通信。要使管道流有用(yuyn),必须同时构造管道输入流和管道输出流。第28页/共40页第二十八页,共41页。8.7PipedInputSream和PipedOutputStreamJava为这种管道概念提供(tgng)了PipedIn

19、putStream和PipedOutputStream类。将这两者结合在一起,它们允许一个Java组件输出数据到输出流,而另一个组件将这个输出流当作输入流来读取。管道输入流和输出流必须连接才能实现数据的流动。第29页/共40页第二十九页,共41页。8.7PipedInputSream和PipedOutputStream管道输入流的构造(guzo)方法为:publicPipedInputStream()创建一个没有连接输出流的输入流。publicPipedInputStream(PipedOutputStreamsrc)构造(guzo)一个连接参数指定的输出流的输入流。管道输出流的构造(guzo

20、)方法为:publicPipedOutputStream()创建一个没有连接输入流的输出流。publicPipedOutputStream(PipedInputStreamsnk)创建一个连接由参数指定的输入流的输出流第30页/共40页第三十页,共41页。8.8过滤(gul)流与节点流过滤流与节点流根据流的建立方式和工作原理,将流分为:节点流(NodeStreams)直接(zhji)建立在输入、输出媒体上。过滤流(FilterStreams),过滤流必须以某一个节点流作为流的来源,可以在读/写数据的同时对数据进行处理。第31页/共40页第三十一页,共41页。8.8过滤(gul)流与节点流过滤流

21、必须建立在节点流之上,对节点流中的数据进行某些加工、处理,并提供一些友好的方法供用户进行输入、输出操作以及流控制。我们(wmen)前面学习过的FileReader、FileWriter、FileInputStream、FileOutputStream对文件进行直接的操作,属于节点流。第32页/共40页第三十二页,共41页。BufferedInputStream和BufferedOutputStreamJava中的InputStream类对流数据(shj)进行封装的时候是不具备缓冲功能的,由于数据(shj)的传输速度远小于处理器的运算速度,会造成处理器的浪费。因此,Java语言提供了Buffer

22、edInputStream这个过滤流来封装InputStream节点流,对流数据(shj)增加了带缓冲的封装来提高数据(shj)处理的性能。同样的提供了BufferedOutputStream来提高OutputStream类的数据(shj)处理性能。第33页/共40页第三十三页,共41页。BufferedInputStream和BufferedOutputStreamBufferedInputStream类常用的构造方法:publicBufferedInputStream(InputStreamin)publicBufferedInputStream(InputStreamin,intsize

23、)两种构造方法都是为某种输入流in创建一个新的缓冲流,方法一创建的缓冲大小为缺省值(32bytes),方法二则由用户指定缓冲区大小,在性能优化时,通常都把size的值设定(shdn)为内存页大小或I/O块大小的整数倍。在I/O量不大时,该类所起作用不是很明显;但当程序I/O量很大,且对程序效率要求很高时,使用该类就能大大提高程序的效率。第34页/共40页第三十四页,共41页。BufferedInputStream和BufferedOutputStreamBufferedOutputStream类常用(chnyn)的构造方法:publicBufferedOutputStream(OutputSt

24、reamout)publicBufferedOutputStream(OutputStreamout,intsize)BufferedOutputStream的两种构造方法的用法与BufferedInputStream的两种构造方法的用法类似。第35页/共40页第三十五页,共41页。DataInputStream和DataOutputStream在使用Java语言进行编程时,常常需要对除了二进制文件和使用文本文件外的基于Data的数据操作(cozu),这里的Data指的是Java的基本数据类型和String。基本数据类型包括byte、int、char、long、float、double、boo

25、lean和short。使用前面提到的InputStream和OutputStream对这些数据进行处理将会非常的麻烦,Java语言提供了DataInputStream和DataOutputStream基本数据类型进行操作(cozu)。第36页/共40页第三十六页,共41页。DataInputStream和DataOutputStreamDataInputStream和DataOutputStream的构造方法的基本结构为:DataInputStream(节点( jidin)流对象)DataInputStream(其它过滤流对象)在DataInputStream和DataOutputStream

26、两个类中的方法都很简单,基本结构为readXXXX()和writeXXXX()其中XXXX代表基本数据类型或者String。第37页/共40页第三十七页,共41页。常用(chnyn)的流分类第38页/共40页第三十八页,共41页。小结(xioji)掌握:各种输入输出流在Java编程中的运用理解:流的基本概念流的分类了解:中文字符(zf)在流传输过程中的转换第39页/共40页第三十九页,共41页。感谢您的观看(gunkn)!第40页/共40页第四十页,共41页。内容(nirng)总结第一部分。第六章 图形用户界面GUI(二)Swing。字节流提供了对字节进行输入输出处理(chl)的方法。在创建对象时FileOutputStream在打开输出文件之前创建它。注意参数是一个整型数,它允许你不必把参数转换成字节型就可以调用write( )。Reader和Writer都是抽象类,它们定义了字符流的一些常用方法(见书表8-5、表8-6)。感谢您的观看第四十一页,共41页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号