【教学课件】第七章输入输出.ppt
《【教学课件】第七章输入输出.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第七章输入输出.ppt(35页珍藏版)》请在三一办公上搜索。
1、1,第七章 输入/输出,流式I/O基础文件随机存取文件对象输入/输出流,2,流Stream的概念,是从源到目的的字节的有序序列,先进先出。两种基本流:Input stream(输入流),Output stream(输出流),3,流操作的过程,Reading:open a streamwhile more information read informationclose the stream,Writing:open a streamwhile more information write informationclose the stream,4,两种结构的流,Node Stream:从特定
2、源如磁盘文件或内存某区域进行读或写入。Filter Steam:使用其它的流作为输入源或输出目的地。,5,两种流类的体系,Java.io包中包含了流式I/O所需要的所有类。流式I/O类根据操作的数据类型(16位字符或字节)分成两个层次体系。,6,字节流输入流类层次,7,InputStream 方法,三个基本read()方法int read()/读一个字节返回int read(byte)/将数据读入byte,返回读的字节数int read(byte,int offset,int length)其它方法void close()/关闭流。自顶向下关闭Filter streamint availabl
3、e()/返回未读的字节数long skip(long n)/跳过n个字节boolean markSupported()/测试打开的流是否支持书签void mark(int)/标记当前流,并建立int大小缓冲区void reset()/返回标签出,8,字节流输出流类层次,9,OutputStream方法,三个基本的write()方法void write(int)/写一个字节void write(byte)/写一个字节数组void write(byte,int offset,int length)其它方法void close()void flush()/强行写,10,字符流,Reader和Writ
4、er是字符流的两个抽象超类。Reader和Writer 类实现字节和字符间的自动转换。每一个核心输入、输出流,都有相应的Reader和Writer版本。,11,Reader的类层次,12,Reader的基本方法,int read();/读单个字符int read(char cbuf);/读字符放入数组中int read(char cbuf,int offset,int length);/读字符放入数组的指定位置 void close()/关闭流。long skip(long n)/跳过n个字符boolean markSupported()/测试打开的流是否支持书签void mark(int)/
5、标记当前流,并建立int大小缓冲区void reset()/返回标签出 boolean ready()/测试当前流是否准备好进行读,13,Writer的类层次,14,Writer的基本方法,int write(int c);/写单个字符int write(char cbuf);/写字符数组int write(char cbuf,int offset,int length);int write(String str);int write(String str,int offset,int length);void close()void flush()/强行写,15,字节流与字符流的比较,Rea
6、der 和 InputStream以及Writer 与 OutputStream定义的API类似,但操作的数据类型不同。所有的流InputStream、OutputStream、Reader、Writer 在创建时自动打开;程序中可以调用close方法关闭流,否则Java运行环境的垃圾收集器将隐含将流关闭。,16,17,18,19,文件流,文件流类包括:FileReader,FileWriter,FileInputStream,FileOutputStream创建文件流:常用文件名或File类的对象创建文件流。例:Copy.java,利用FileReader,FileWriter,将farra
7、go.txt的内容拷贝到outagain.txt中。CopyBytes.java,利用FileInputStream,FileOutputStream。,20,管道流,管道用来把一个线程的输出连接到另一个线程的输入。PipedReader/PipedInputStream实现管道的输入端;PipedWriter/PipedOutputStream实现管道的输出端。管道流模型:,21,将一个线程的输出流直接挂在另一个线程的输入流,建立管道,实现线程间数据交换。PipedInputStream pin=new PipedInputStream();PipedOutputStream pout=ne
8、w PipedOutputStream(pin);PipedInputStream pin=new PipedInputStream();PipedOutputStream pout=new PipedOutputStream();pin.connect(pout);或pout.connect(pin)。,管道流的创建,22,管道流示例,Rhymingwords.java,输入一组单词,先将每个单词逆序,再将所有单词排序,最后将这些单词逆序输出。程序处理流程:,23,示例中的管道流,24,是过滤流。数据从原始流成块读入或将数据积累到一个大数据块后再成批输出。基本方法:int read()int
9、 read(byte,int offset,int length)int write(int c)void write(byte,int offset,int length)BufferedReader增加readLine()方法。,BufferedInputStream/BufferedOutputStream,25,DataInputStream和DataOutputStream(Filter stream)读写基本数据类型:DataInputStream方法 byte readByte()boolean readBoolean()long readLong()char readChar(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第七 输入输出

链接地址:https://www.31ppt.com/p-5660502.html