第8章Java输入输出流ppt课件.ppt
《第8章Java输入输出流ppt课件.ppt》由会员分享,可在线阅读,更多相关《第8章Java输入输出流ppt课件.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 Java输入输出流第第8 8章章 JavaJava输入输出流输入输出流JavaJava程序设计基础程序设计基础主要内容:主要内容:p 文件系统和文件系统和File类及其常用方法类及其常用方法p 输出输入流和输出输入流和Inputstream,Outputstream类类p Reader和和Writer类类p InputStreamReader和和OutputStreamWriter类类p FileReader和和FileWriterp BufferedReader和和BufferedWriter类类教学目的和要求教学目的和要求:1.学会使用文件输入输出流读、写字节文件等。学会使用文件输
2、入输出流读、写字节文件等。2.掌握如何提高读写效率和增强读写功能,灵活使掌握如何提高读写效率和增强读写功能,灵活使用用BufferedInputStream类和类和BufferedOutputStream类、类、DataInputStream类和类和DataOutputStream类类及类中的响应方法。及类中的响应方法。3.掌握如何存储和还原串行化对象。掌握如何存储和还原串行化对象。4.熟悉目录和文件操作熟悉目录和文件操作File类。类。5.掌握掌握RandomAccessFile类的使用类的使用定位读写。定位读写。6.熟悉字符流类熟悉字符流类Reader和和Writer的相关子类的使的相关子
3、类的使用。用。 教学重点教学重点 :1.掌握常用的字节流类、字符流类的使用。掌握常用的字节流类、字符流类的使用。2.RandomAccessFile类实现定位读写。类实现定位读写。3.掌握目录和文件操作掌握目录和文件操作File类。类。4.掌握存储和还原串行化对象。掌握存储和还原串行化对象。5.综合所学知识编写能解决实际问题的输入输出程综合所学知识编写能解决实际问题的输入输出程序。序。 教学难点教学难点 :1.流的概念、输入和输出。流的概念、输入和输出。2.Java输入输出流的读写指针、流的结束等概念。输入输出流的读写指针、流的结束等概念。3.区别字节流、字符流。常用字节流类和字符流类区别字节
4、流、字符流。常用字节流类和字符流类的使用。的使用。4.串行化的概念,如何串行化对象。串行化的概念,如何串行化对象。5.综合所学知识编写能解决实际问题的输入输出程综合所学知识编写能解决实际问题的输入输出程序。序。 Java的输入输出/概述Java的输入输出是由定义在的输入输出是由定义在Java.io这个包中的这个包中的一系列一系列类和接口来实现的类和接口来实现的所以在需要输入输出的程序的前面都要所以在需要输入输出的程序的前面都要import java.io.*;在在java.io这个包里有这个包里有50个类和个类和10个接口个接口,我们会用到我们会用到 File RandomAccessFile
5、 InputStream及其子类及其子类(常用的常用的7个个) OutputStream及其子类及其子类(常用的常用的5个个)Java的输入输出流(1)什么是输入输出流什么是输入输出流? ?输入输出流说的都是数据流输入输出流说的都是数据流, ,而而数据流数据流是指一组有顺序是指一组有顺序的、有起点和终点的字节集合的、有起点和终点的字节集合文件文件程序程序网络端点网络端点数据流数据流起点起点终点终点 终端设备终端设备文件文件程序程序网络端点网络端点终端设备终端设备Java的输入输出流(2)数据流分为输入数据流和输出数据流数据流分为输入数据流和输出数据流, ,各自在分为各自在分为字节流和字符流字节
6、流和字符流Java中的输入数据流中的输入数据流(字节流字节流)都是抽象类都是抽象类InputStream的的子类子类Java中的输入数据流中的输入数据流(字符流字符流)都是抽象类都是抽象类Reader的子类的子类输入数据流只能读输入数据流只能读,不能写不能写Java中的输出数据流中的输出数据流(字节流字节流)都是抽象类都是抽象类OutputStream的的子类子类Java中的输出数据流中的输出数据流(字符流字符流)都是抽象类都是抽象类Writer的子类的子类输出数据流只能写输出数据流只能写,不能读不能读本章概要本章概要 :ObjectInputStreamReaderWriterFileRan
7、domAccessFileOutputStreamFileInputStream FileReaderFileWriterFileOutputStream 字节字节8位位字符字符16位位Java的输入输出流(3)输入数据流输入数据流InputStream(字节流字节流)的继承关系的继承关系InputStreamFileInputStreamPipedIntputStreamFilterInputStreamByteArrayInputStreamDataInputStreamBufferedInputStreamSequencedInputStreamObjectInputStreamPush
8、backInputStreamAudioInputStream只画出了我们感兴趣的类只画出了我们感兴趣的类Java的输入输出流(4)输出数据流输出数据流OutputStream(字节流字节流)的继承关系的继承关系OutputStreamFileOutputStreamPipedOutputStreamFilterOutputStreamByteArrayOutputStreamDataOutputStreamBufferedOutputStreamObjectOutputStreamPrintStream只画出了我们感兴趣的类只画出了我们感兴趣的类Java的输入输出流(5)输入数据流输入数据流
9、reader(字符流字符流)的继承关系的继承关系ReaderInputStreamReaderPipedReaderFilterReaderCharArrayReaderPushbackReaderLineNumberReaderStringReaderBufferedReaderFileReader只画出了我们感兴趣的只画出了我们感兴趣的Java的输入输出流(6)输出数据流输出数据流Writer(字符流字符流)的继承关系的继承关系只画出了我们感兴趣的只画出了我们感兴趣的WriterBufferedWriterFilterWriterCharArrayWriterOutputStreamWri
10、terFileWriterPipedWriterPrintWriterStringWriterJava的输入输出流(7)输入数据流输入数据流InputStream(字节流字节流)的主要方法的主要方法现版本现版本Java的的InputStream类有类有9个方法个方法:int available();返回可以读取的字节数返回可以读取的字节数void close();关闭输入流关闭输入流,释放系统资源释放系统资源void mark(int readlimit);在当前位置做一个标记在当前位置做一个标记int read();读下一个字节读下一个字节(InputStream类里唯一的抽象方法类里唯一的
11、抽象方法)int read(byte b);读若干字节到读若干字节到b里去里去int read(byte b, int off, int len);读最多读最多len个字节到个字节到bytevoid reset();返回到最后一个返回到最后一个mark做的标记处做的标记处long skip(long n);跳过跳过n个字节个字节InputStream的子类必须重写的子类必须重写read();InputStream();构造方法构造方法第一个字节放在第一个字节放在byteoffJava的输入输出流(8)输出数据流输出数据流OutputStream(字节流字节流)的主要方法的主要方法现版本现版本J
12、ava的的OutputStream类共有类共有5个方法个方法如下:如下:void close();关闭输出流关闭输出流,释放系统资源释放系统资源void flush();清空输出缓冲区清空输出缓冲区,把里面的数据写出去把里面的数据写出去void write(byte b);从从b写写b.length个字节数到输出流个字节数到输出流void write(byte b, int off, int len);*void write(int b);写入一个字节写入一个字节b (该类里唯一的抽象方法该类里唯一的抽象方法)OutputStream();构造方法构造方法OutputStream的子类必的子类
13、必须重写须重写write(int b)方法方法*从从byte数组数组b的的boff开始向输出开始向输出流里写流里写len个字节;如果个字节;如果off+len大大于数组的长度于数组的长度b.length就会出错就会出错Java的输入输出流(9)FileInputStream的主要方法的主要方法只列出了我们感兴趣的只列出了我们感兴趣的现版本现版本Java的的FileInputStream类共有类共有9个方法个方法:int available();返回可以读取的字节数返回可以读取的字节数void close();关闭输入流关闭输入流,释放系统资源释放系统资源int read();读下一个字节读下一
14、个字节int read(byte b);读若干字节到读若干字节到b里去里去long skip(long n);跳过跳过n个字节个字节现版本现版本Java的的FileInputStream类共有类共有3个构造方法个构造方法:FileInputStream(File f);FileInputStream(FileDescriptor fd);FileInputStream(String name);FileInputStream的用途是从一个文件里获得输入的字节。特别适的用途是从一个文件里获得输入的字节。特别适用于获得图象数据等;如果是输入字符,建议使用用于获得图象数据等;如果是输入字符,建议使用
15、FileReader类类err,in,outerr,in,out等等Java的输入输出流(10)FileOutputStream的主要方法的主要方法只列出了我们感兴趣的只列出了我们感兴趣的现版本现版本Java的的FileOutputStream类共有类共有7个方法个方法:void close();关闭输出流关闭输出流,释放系统资源释放系统资源void write(int b);写字节写字节bvoid write(byte b);从从b写写b.length个字节数到输出流个字节数到输出流void write(byte b, int off, int len);从从boff开始写开始写len字节字
16、节现版本现版本Java的的FileOutputStream类共有类共有5个构造方法个构造方法:FileOutputStream(File f);FileOutputStream(File f, boolean append);FileOutputStream(FileDescriptor fd);FileOutputStream(String name);FileOutputStream(String name, boolean append);FileOutputStream适用于获得适用于获得image data,输出字符用输出字符用FileWriterJava的输入输出流(11)Byte
17、ArrayInputStream的介绍的介绍现版本现版本Java的的ByteArrayInputStream类有类有2个构造方法个构造方法:ByteArrayInputStream(byte buf); ByteArrayInputStream(byte buf, int offset, int length);现版本现版本Java的的ByteArrayInputStream类有类有8个方法个方法:int available();返回可以读取的字节数返回可以读取的字节数void close();关闭输入流关闭输入流,释放系统资源释放系统资源void mark(int readlimit);在当
18、前位置做一个标记在当前位置做一个标记boolean markSupported();测试是否支持测试是否支持mark和和resetint read();读下一个字节读下一个字节int read(byte b, int off, int len);读最多读最多len个字节到个字节到bytevoid reset();返回到最后一个返回到最后一个mark做的标记处做的标记处Java的输入输出流(12)ByteArrayOutputStream的介绍的介绍现版本现版本Java的的ByteArrayOutputStream类有类有9个方法个方法:void close();关闭输出流对象,但关闭输出流对象
19、,但不影响其它方法的使用不影响其它方法的使用void reset();将这个对象缓冲区的将这个对象缓冲区的count值置值置0int size();返回缓冲区大小返回缓冲区大小byte toByteArray();复制一个内容、大小都一样的复制一个内容、大小都一样的byteString toString();将缓冲区将缓冲区buf的内容转换成一个字符串的内容转换成一个字符串String toString(String enc);按指定的字符集按指定的字符集enc转换字符串转换字符串void write(int b);将字节将字节b写到这个写到这个ByteArrayOutputStream现版本
20、现版本Java的的ByteArrayOutputStream类有类有2个构造方法个构造方法:ByteArrayOutputStream(); ByteArrayOutputStream(int size);Java的输入输出流(13)ByteArrayInputStream和和ByteArrayOutputStream将输入与输出面向一个将输入与输出面向一个byte型的数组型的数组在这两个类里都有成员变量在这两个类里都有成员变量protected byte buf和和protected int count这个这个buf就是数据缓冲区就是数据缓冲区ByteArrayInputStream将数据读
21、入一个缓冲区将数据读入一个缓冲区ByteArrayOutputStream将数据写入一个缓冲区将数据写入一个缓冲区Java的输入输出流(13)ByteArrayInputStream和和ByteArrayOutputStream将输入与输出面向一个将输入与输出面向一个byte型的数组型的数组在这两个类里都有成员变量在这两个类里都有成员变量protected byte buf和和protected int count这个这个buf就是数据缓冲区就是数据缓冲区ByteArrayInputStream将数据读入一个缓冲区将数据读入一个缓冲区ByteArrayOutputStream将数据写入一个缓冲
22、区将数据写入一个缓冲区Java的输入输出流(14)FilterInputStream这个过滤器输入流是其它带过滤器的输入流的超类这个过滤器输入流是其它带过滤器的输入流的超类FilterInputStream的方法与的方法与InputStream的方法完全的方法完全一样,也就是说前者只是简单地重写了后者的所有方法一样,也就是说前者只是简单地重写了后者的所有方法构造方法构造方法: FilterInputStream(InputStream in); 过滤器输入流以一个过滤器输入流以一个InputStream为自己的数据源为自己的数据源成员变量:成员变量:protected InputStream
23、in在构造方法里会对这个变量赋值,即:在构造方法里会对这个变量赋值,即:this.in = in;Java的输入输出流(15)FilterOutputStream这个过滤器输出流是其它带过滤器的输出流的超类这个过滤器输出流是其它带过滤器的输出流的超类FilterOutputStream的方法与的方法与OutputStream的方法的方法完全一样,也就是说前者只是简单地重写了后者的所有完全一样,也就是说前者只是简单地重写了后者的所有方法方法构造方法构造方法: FilterOutputStream(OutputStream out);过滤器输出流位于一个过滤器输出流位于一个OutputStream
24、之上之上成员变量:成员变量:protected OutputStream out在构造方法里会对这个变量赋值,即:在构造方法里会对这个变量赋值,即:this.out = out;Java的输入输出流(16)DataInputStream的主要方法的主要方法只列出了我们感兴趣的只列出了我们感兴趣的现版本现版本Java的的DataInputStream类共有类共有17个方法个方法:int read(byte b);读若干字节到缓冲区读若干字节到缓冲区b里里int read(byte b,int off, int len);读最多读最多len个字节到个字节到b里去里去readBoolean(); r
25、eadByte(); readChar(); readDouble();readFloat(); readInt(); readLong(); readShort();这些方法分别返回相应数这些方法分别返回相应数据类型的值据类型的值String readUTF();读入一个读入一个UTF-8格式的字符串格式的字符串Static String readUTF(DataInput in);从输入流读入一个从输入流读入一个UTF-8格式的格式的字符串字符串构造方法构造方法:DataInputStream(InputStream in);DataInputStream实现了接口实现了接口DataInp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 Java输入输出流ppt课件 Java 输入输出 ppt 课件
限制150内