9 输入输出流.ppt
《9 输入输出流.ppt》由会员分享,可在线阅读,更多相关《9 输入输出流.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章第九章输入输入/输出处理输出处理2目标目标掌握输入掌握输入/输出流的输出流的概念概念和类的使用和类的使用掌握掌握文件字节流文件字节流的定义和使用的定义和使用掌握掌握文件字符流文件字符流的定义和使用的定义和使用掌握掌握文件随机访问文件随机访问了解文件操作相关类了解文件操作相关类对象串行化的概念和实现方法对象串行化的概念和实现方法了解其它常用流的定义和使用了解其它常用流的定义和使用39.1.1输入输入/输出流的概念输出流的概念数据流数据流:计算机系统中一组有顺的、有起计算机系统中一组有顺的、有起点和终点的数据序列。点和终点的数据序列。程序程序输入流输入流输出流输出流数据数据数据数据键盘键盘显
2、示器显示器打印机打印机4文件文件程序程序00101文件文件程序程序00101程序程序00101程序程序010程序程序010010“hello”文件文件程序程序5缓存:缓存:相对内存较大的内存区域,用于数据相对内存较大的内存区域,用于数据进行输入或输出的临时存储。进行输入或输出的临时存储。I/O设备设备程序程序较慢较慢缓存缓存当使用了缓存之后,程序把大量字节移到缓存中,当使用了缓存之后,程序把大量字节移到缓存中,然后再通过缓存实现与程序的输入输出操作。然后再通过缓存实现与程序的输入输出操作。69.1.2输入输入/输出类输出类输入输出是相对程序来说的,程序扮演两个角输入输出是相对程序来说的,程序扮
3、演两个角色:数据源和使用者。色:数据源和使用者。输入流输入流:从外界流入程序的数据序列;从外界流入程序的数据序列;输出流输出流:从程序流出到外界的数据序列。从程序流出到外界的数据序列。字节流字节流:在输入输出过程中以字节为单位。:在输入输出过程中以字节为单位。字符流字符流:在输入输出过程中以字符为单位。:在输入输出过程中以字符为单位。79.1.2输入输入/输出类输出类Java的的I/O库提供了操作数据流的类:库提供了操作数据流的类:(1)所有字节流类都是抽象类)所有字节流类都是抽象类InputStream、OutputStream的子类;的子类;(2)所有字符流类都是抽象类)所有字符流类都是抽
4、象类Reader和和Writer的子类。的子类。89.1.2输入输入/输出类输出类InputStream类(字节输入流)常用方法类(字节输入流)常用方法intread()从输入流中读取从输入流中读取1个字节个字节intread(byteb)试图从输入流中读取试图从输入流中读取b.length字节的数据,返回字节的数据,返回实际读取的长度实际读取的长度intread(byteb,intoff,intlen)从输入流中读取从输入流中读取len字节的数据,存放在数组字节的数据,存放在数组b从从off开始的位置,返回实际读取的长度开始的位置,返回实际读取的长度intavailable()获取还有多少字
5、节可读获取还有多少字节可读9longskip(longn)读取位置向前移动读取位置向前移动n个字节,返回实际移动的字节个字节,返回实际移动的字节数数voidclose()关闭输入流关闭输入流voidmark(intreadlimite)在输入流中的当前位置上作标记,标记后若读取超在输入流中的当前位置上作标记,标记后若读取超过过readlimite个字节后,重置流(个字节后,重置流(reset)可能会)可能会失败。失败。voidreset()重新定位到最后调用重新定位到最后调用mark方法时的位置方法时的位置109.1.2输入输入/输出类输出类OutputStream类(字节输出流)常用方法类(
6、字节输出流)常用方法voidwrite(intb)将字节将字节b写入到输出流写入到输出流voidwrite(byteb)将字节数组将字节数组b内容写入到输出流内容写入到输出流voidwrite(byteb,intoff,intlen)将字节数组将字节数组b内容从内容从off位置的位置的len个字节写入到个字节写入到输出流输出流11voidflush()刷新输出流并强制写出所有缓冲的输出字节刷新输出流并强制写出所有缓冲的输出字节voidclose()关闭输出流关闭输出流129.1.2输入输入/输出类输出类Reader类(字符输入流)的常用方法类(字符输入流)的常用方法intread()读取读取1
7、个字符个字符intread(charch)试图读取试图读取ch.length字符的数据,返回实际读取字符的数据,返回实际读取的字符数的字符数intread(charb,intoff,intlen)读取读取len字符的数据,存放在数组字符的数据,存放在数组b从从off开始的开始的位置,返回实际读取的字符数位置,返回实际读取的字符数13longskip(longn)读取位置向前移动读取位置向前移动n个字符,返回实际移动的字符数个字符,返回实际移动的字符数voidmark(intreadlimite)在字符流中的当前位置上作标记,标记后再读取超过在字符流中的当前位置上作标记,标记后再读取超过read
8、limite个字符后,重置流(个字符后,重置流(reset)可能会失败。)可能会失败。voidreset()重新定位到最后调用重新定位到最后调用mark方法时的位置方法时的位置voidclose()关闭字符流关闭字符流149.1.2输入输入/输出类输出类Writer类(字符输出流)的常用方法类(字符输出流)的常用方法voidwrite(intc)将字符将字符c写入到输出流写入到输出流voidwrite(charch)将字符数组将字符数组ch内容写入到输出流内容写入到输出流voidwrite(charch,intoff,intlen)将字符数组将字符数组ch内容从内容从off位置的位置的len个
9、字符写入个字符写入到输出流到输出流15voidwrite(Strings)将字符串将字符串s中的字符写入到输出流中的字符写入到输出流voidflush()刷新输出流并强制写出所有缓冲的输出字符刷新输出流并强制写出所有缓冲的输出字符voidclose()关闭输出流关闭输出流169.1.3标准输入标准输入/输出输出System类提供了访问标准输入类提供了访问标准输入/输出设备输出设备的功能。的功能。System类有类有3个类变量:个类变量:标准输入标准输入publicstaticfinalInputStreamin标准输出标准输出publicstaticfinalPrintStreamout标准错
10、误输出:标准错误输出:publicstaticfinalPrintStreamerr179.2字节输入字节输入/输出流输出流FileInputStream/FileOutputStreamDataInputStream/DataOutputStreamBufferedInputStream/BufferedOutputStreamPrintStreamInputStream/OutputStream实现类:实现类:1819FileInputStream(1)创建输入流)创建输入流FileInputStream(Stringname)用文件名用文件名name创建流对象。创建流对象。FileInp
11、utStream(Filefile)用文件对象用文件对象file创建流对象。创建流对象。9.2.1文件输入文件输入/输出字节流输出字节流FileInputStreamfis=newFileInputStream(“c:/data.txt”);Filemyfile=newFile(“c:/data.txt”);FileInputStreamfis=newFileInputStream(myfile);209.2.1文件输入文件输入/输出字节流输出字节流(2)读取文件信息)读取文件信息intread():从输入流中读取一个字节,返从输入流中读取一个字节,返回字节值回字节值。intread(byte
12、b):从输入流中读取,写从输入流中读取,写入入b。返回实际读取字节数。返回实际读取字节数。intread(byteb,intoff,intlen):从输从输入流中读取入流中读取len个数据,写入个数据,写入b,从索引,从索引off开始。返回实际读取字节数。开始。返回实际读取字节数。21举例举例用用FileInputStream读取文件,并把文件内读取文件,并把文件内容屏幕显示容屏幕显示22import java.io.*;public class FileInputStreamDemopublic static void main(String args)int b;byte buf=new
13、byte32;tryFile f=new File(F:/infodemo.txt);FileInputStream in=new FileInputStream(f);while(b=in.read(buf)!=-1)String s=new String(buf,0,b);System.out.print(s);in.close();catch(IOException e)System.out.println(File read Error);字节流的存储,需字节流的存储,需要字节数组要字节数组byte239.2.1文件输入文件输入/输出字节流输出字节流FileOutputStream创建
14、输出流创建输出流FileOutputStream(Stringname)用文件名用文件名name创建流对象创建流对象FileOutputStream(Filefile)使用文件对象使用文件对象file创建流对象创建流对象FileOutputStream fos=new FileOutputStream(“c:/dataout.dat”);Filef=newFile(“c:/dataout.dat”);FileOutputStreamfos=newFileOutputStream(f);249.2.1文件输入文件输入/输出字节流输出字节流(4)向输出流写信息)向输出流写信息voidwrite(i
15、ntb):将指定的整型数据将指定的整型数据b的的低字节写入输出流。低字节写入输出流。voidwrite(byteb):把字节数组把字节数组b中的数中的数据写入输出流。据写入输出流。voidwrite(byteb,intoff,intlen):把字把字节数组节数组b中从中从off开始的开始的len个字节写入输出个字节写入输出流。流。259.2.1文件输入文件输入/输出字节流输出字节流(5)关闭流)关闭流显示关闭流对象:显示关闭流对象:close()隐式关闭流对象隐式关闭流对象:Java有有自动垃圾收集系统自动垃圾收集系统,可以自动进行资源的回收。可以自动进行资源的回收。26举例:举例:用用Out
16、putStream向文件中写入键盘输入的向文件中写入键盘输入的数据数据27import java.io.*;public class FileOutputStreamDemopublic static void main(String args)int b;byte buffer=new byte128;trySystem.out.println(“input one line words);b=System.in.read(buffer);FileOutputStream writefile=new FileOutputStream(“F:/demo.txt);writefile.write
17、(buffer);catch(IOException e)System.out.println(Error+e);(“F:/demo.txt”,true)28练习:练习:使用字节流将第一个文件中的内容复制到使用字节流将第一个文件中的内容复制到第二个文件中去(假定两个都是第二个文件中去(假定两个都是txt文件)。文件)。299.2.2过滤流过滤流字节流字节流FileInputStream类和类和FileOutputStream类只提供纯字节或字节数组的输入类只提供纯字节或字节数组的输入/输出。输出。基本数据类型的输入基本数据类型的输入/输出,则要通过过滤输出,则要通过过滤流流FilterInpu
18、tStream类和类和FileterOutputStream类类中的各种中的各种子类子类。过滤流提供了过滤流提供了同步机制同步机制,即某一时刻只有,即某一时刻只有一个程序段访问输入一个程序段访问输入/输出流。输出流。309.2.2过滤流过滤流DataInputStream,DataOutputStream构造方法:构造方法:DataInputStream(InputStreamin)DataOutputStream(OutputStreamout)必须基于一个输入类或输出类的对象构造!必须基于一个输入类或输出类的对象构造!319.2.2过滤流过滤流DataOutputStream的使用:的使用
19、:FileOutputStream fos=new FileOutputStream(“test.txt);DataOutputStream out_data=new DataOutputStream(fos);out_data.writeInt(100);out_data.writeDouble(123.4322);32DataInputStream的使用:的使用:FileInputStream fis=new FileInputStream(“test.txt);DataInputStream in_data=new DataInputStream(fis);System.out.prin
20、tln(in_data.readInt();System.out.println(in_data.readDouble();33举例:举例:import java.io.*;public class DataOutputInoutStreamDemo public static void main(String args)throws Exception FileInputStream in=new FileInputStream(c:/1.txt);DataInputStream in_data=new DataInputStream(in);FileOutputStream out=new
21、 FileOutputStream(c:/1.txt);DataOutputStream out_data=new DataOutputStream(out);out_data.writeInt(100);out_data.writeLong(123456);out_data.writeDouble(111233.4232);out_data.writeBoolean(true);out_data.writeUTF(i am ok);out_data.close();34 System.out.println(in_data.readInt();System.out.println(in_da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出流 输入输出
限制150内