第9章 输入输出流.ppt
《第9章 输入输出流.ppt》由会员分享,可在线阅读,更多相关《第9章 输入输出流.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章输入输出流n9.1数据流的概念n9.2基本输入输出类n9.3对象流n9.4文件的操作9.1数据流的概念n9.1.1输入流和输出流n9.1.2字节流和字符流n9.1.3Java的标准数据流9.1.1输入流和输出流n在Java中,把所有输入和输出都当作流来处理。n流流是按一定顺序排列的数据的集合n输入数据时,一个程序打开数据源上的一个流(文件或内存等),然后按顺序输入这个流中的数据,这样的流称为输入流输入流n输出数据时,一个程序可以打开一个目的地的流,然后按顺序从程序向这个目的地输出数据,这样的流称为输出流输出流n输入和输出的方向是以程序为基准的。通常,也把从输入流中输入数据到程序中称为读读
2、数据(read),反之,从程序中将数据输出到输出流中称为写写数据(write)n具体步骤一般为:打开一个流while(数据存在时)读数据或写数据 关闭流 9.1.2字节流和字符流nJava的输入输出流中,根据它们的数据类型,主要可分为两类1.字符流n字符流的输入输出数据是字符码,即Unicode字符(当遇到不同编码的字符时,Java的字符流会自动将其转换成Unicode字符)n字符流有两个基本类:Reader类和Writer类nReader类和Writer类分别为字符型输入输出流提供了读写字符的基本方法。2.字节流n字节流是按字节读/写二进制数据n字节流有两个基本的类:InputStream类
3、和OutputStream类。InputStream类和OutputStream类分别为字节型输入输出流提供了读写字节码的基本方法9.1.3Java的标准数据流njava.lang包的System类定义了三个成员变量,分别是:nlstaticfinalInputStreamin标准输入innlstaticfinalPrintStreamout标准输出outnlstaticfinalPrintStreamerr标准错误输出errn我们可以直接使用这些成员变量,不需要创建对象。in可以直接调用InputStream类提供的输入方法;out和err可以直接调用PrintStream类提供的输出方法n
4、out用于屏幕输出,常用的调用方法有:lSystem.out.print(String str);向 屏幕输出字符串strnlSystem.out.println(Stringstr);向屏幕输出字符串str后换行nin用于屏幕输入,常用的调用方法有:nlSystem.in.read()返回从键盘输入的字符nlSystem.in.read(byteb)从键盘输入多个字符到数组b,并返回字符个数 9.2基本输入输出类nJava有四个最基本的输入输出类:InpuStream、OutputStream、Reader和Writer,Reader和Writer用于字符流的输入输出n9.2.1InputS
5、tream(字节输入流)类n9.2.2OutputStream(字节输出流)类n9.2.3Reader(字符输入流)类n9.2.4Writer(字符输出流)类n9.2.5FileReader和FileWriter(字符文件输入/输出流)类9.2.1InputStream(字节输入流)类nInputStream类称作字节输入流类,是一个抽象类。它为其他输入字节流子类提供了一些基本方法和标准接口1.InputStream类的常用方法nlvoidclose()关闭输入流nlvoidmark(intreadlimit)标记输入流的当前位置nlbooleanmarkSupport()测试是否支持mark
6、()方法和reset()方法nlintread(typeb)从输入流读若干个字节到数组b,返回字节个数nlintread(byte,intoff,intlen)n读字节到数组b,起始为off,长度为len,返回字节个数nlvoidreset()复位,即将输入流的当前位置置为初始值nllongskip(longn)跳过n个字节,返回跳过的字节个数nlabstractintread()抽象方法,从输入流读下一个字节 2.异常的抛出nInputStream类中的许多方法在调用时有可能出现异常,例如,调用close()方法关闭文件时,文件因种种原因有可能关闭不了,因此定义的这些方法都有throwsIO
7、Exception语句。所以,close()方法的完整定义为:voidclose()throwsIOExceptionn应用程序在调用这些方法时,如果不希望由系统进行异常处理,而希望由应用程序进行异常处理,则需要按照8.4.2节讨论的方法进行异常的抛出和异常的处理 3.InputStream类的常用子类nInputStream是抽象类,它本身不能直接用来创建对象,但这个抽象类有很多子类,这些不同子类通过各自定义的抽象父类的抽象方法,实现了各种不同功能的输入字节流。常用的InputStream类的子类以及它们的继承关系如图9.2所示 InputStream类的两个常用子类(1)BufferedI
8、nputStream类n当一个BufferedInputStream类对象被创建时,就产生了一个内部缓冲数组,因此,可以根据需要从连接的输入数据流中一次性读多个字节的数据到内部缓冲数组中,这样可以提高读输入数据流的效率nBufferedInputStream的常用构造方法有:nlBufferedInputStream(InputStreamin)nlBufferedInputStream(InputStreamin,intsize)(2)FileInputStream类nFileInputStream类主要用于文件的输入,创建的对象可以顺序地从本地机上的文件中读数据nFileInputStre
9、am类常用的构造方法有:nlFileInputStream(Stringname)throwsFileNotFoundExceptionnlFileInputStream(FilefileName)throwsFileNotFoundException9.2.2OutputStream(字节输出流)类nOutputStream类 称 作 字 节 输 出 流 类,也 是 一 个 抽 象 类。OutputStream类为其他的输出字节流子类提供了一些基本方法和标准接口1.OutputStream类的常用方法nlvoidclose()关闭输出流nlvoidflush()清空输出流,使所有缓冲字节写完
10、nlvoidwrite(byteb)将数组b中的字节写到输出流nlvoidwrite(byteb,intoff,intlen)nlabstractvoidwrite(intb)将字节b写到输出流n同样,OutputStream类定义的许多方法都有throwsIOException语句。2.OutputStream类的常用子类nOutputStream是抽象类,它本身不能直接用来创建对象,但这个抽象类有很多子类,这些子类实现了各种具体功能的输出字节流,可以通过实例化它的子类来创建所需的对象n比较常用的OutputStream类的子类以及继承关系如图9.3所示OutputStream类的两个常用子
11、类(1)BufferedOutputStream类nBufferedOutputStream类对象被创建时,产生一个内部缓冲数组,因此,可以从连接的输出数据流中一次性向内部缓冲数组中写多个字节的数据nBufferedOutputStream类的常用构造方法有:nlBufferedOutputStream(OutputStreamout)nlBufferedOutputStream(OutputStreamout,intsize)n(2)FileOutputStream类nFileOutputStream类主要用于文件的输出,它的对象可以顺序地向本地机上的文件中写数据nFileOutputStr
12、eam类的常用构造方法有:nlFileOutputStream(Stringname)throwsFileNotFoundExceptionnlFileOutputStream(FilefileName)throwsFileNotFoundExceptionnlFileOutputStream(Stringname,booleanapp)throwsFileNotFoundExceptionnBufferedOutputStream类和FileOutputStream类重写了OutputStream类中的write(intb)方法9.2.3Reader(字符输入流)类nReader类称作字符输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 输入输出流 输入输出
限制150内