《第8章 输入输出处理PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第8章 输入输出处理PPT讲稿.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第8章章 输入输出处理输入输出处理第1页,共20页,编辑于2022年,星期一回顾回顾异常的基本概念异常的基本概念 异常的处理异常的处理 异常类的层次结构异常类的层次结构 创建自己的异常创建自己的异常2 2第2页,共20页,编辑于2022年,星期一目标目标输入输入/输出流的概念和类层次结构输出流的概念和类层次结构 主要字节流的定义和使用主要字节流的定义和使用 主要字符流的定义和使用主要字符流的定义和使用 文件管理以及文件操作文件管理以及文件操作 对象串行化的概念和实现方法对象串行化的概念和实现方法 了解其他常用流的定义和使用了解其他常用流的定义和使用 3 3第3页,共20页,编辑于2022年,
2、星期一8.1.1 输入输入/输出流的概念输出流的概念 数据流数据流:是指在计算机的输入输出之间运动:是指在计算机的输入输出之间运动的数据序列。的数据序列。输入输出是相对程序来说的,程序扮演两个输入输出是相对程序来说的,程序扮演两个角色:源和目的。角色:源和目的。输入流输入流:代表从外设流入程序的数据序列;:代表从外设流入程序的数据序列;输出流输出流:代表从程序流向外设的数据序列。:代表从程序流向外设的数据序列。字节流字节流:在输入输出过程中以字节为单位。:在输入输出过程中以字节为单位。字符流字符流:在输入输出过程中以字符为单位。:在输入输出过程中以字符为单位。4 4第4页,共20页,编辑于20
3、22年,星期一8.1.2 输入输出类层次输入输出类层次 5 5第5页,共20页,编辑于2022年,星期一8.1.3 标准输入输出标准输入输出1.1.标准输入标准输入 public static final InputStream inpublic static final InputStream in 使用使用read()read()和和skipskip(long nlong n)方法读取。方法读取。2.2.标准输出标准输出 public static final PrintStream outpublic static final PrintStream out 使用使用print()pri
4、nt()和和println()println()来输出。来输出。3.3.标准错误输出标准错误输出 public static final PrintStream errpublic static final PrintStream err6 6第6页,共20页,编辑于2022年,星期一8.2.1 文件输入输出字节流文件输入输出字节流(1)(1)创建创建FileInputStreamFileInputStream类对象;类对象;(2)(2)读取文件信息;读取文件信息;(3)(3)创建创建FileOutputStreamFileOutputStream类对象;类对象;(4)(4)向输出流写信息:向
5、输出流写信息:void write(int b)void write(int b);void write(byte b);void write(byte b);void write(byte b,int off,int len);void write(byte b,int off,int len);(5)(5)关闭关闭FileInputStreamFileInputStream流流。7 7第7页,共20页,编辑于2022年,星期一8.2.2 过滤流过滤流1、DataInputStream,DataOutputStream1使用数据流方法使用数据流方法:(1)用前面的方法建立字节文件流对象;用前
6、面的方法建立字节文件流对象;(2)基于字节文件流对象建立数据文件流对象;基于字节文件流对象建立数据文件流对象;(3)用此对象方法对基本类型的数据进行输入用此对象方法对基本类型的数据进行输入/输出。输出。2创建数据流的构造方法。创建数据流的构造方法。2、BufferedInputStream,BufferedOutputStream(1)创建流对象创建流对象BufferedOutputStream;(2)用用flush()方法更新流;方法更新流;(3)创建创建BufferedInputStream对象;对象;(4)缓冲流类的应用。缓冲流类的应用。3、PrintStream类类8 8第8页,共20
7、页,编辑于2022年,星期一8.3.1 输入输出字符流输入输出字符流常用的是常用的是InputStreamReaderInputStreamReader和和OutputStreamWriterOutputStreamWriter1.1.其构造方法:其构造方法:InputStreamReader(InputStream in);InputStreamReader(InputStream in,String enc);OutputStreamWriter(OutputStream out);OutputStreamWriter(OutputStream out,String enc);2.读写方法
8、读写方法3.其他方法其他方法 String getEncoding()public void colse()9 9第9页,共20页,编辑于2022年,星期一8.3.2 文件输入输出字符流文件输入输出字符流 FileReaderFileReader和和FileWriterFileWriter是是InputStreamReaderInputStreamReader和和OutputStreamWriterOutputStreamWriter的子类。构造方法各有两种。的子类。构造方法各有两种。FileReader(File f)FileReader(String fn)FileReader(File
9、f)FileReader(String fn)FileWriter(File f)FileWriter(String fn)FileWriter(File f)FileWriter(String fn)常用方法:常用方法:read();read(char buffer);read();read(char buffer);write(String str);write(String str);write(char buffer);write(char buffer);1010第10页,共20页,编辑于2022年,星期一8.3.3 缓冲字符流缓冲字符流 BufferedReaderBuffered
10、Reader和和BufferedWriterBufferedWriter构造方法:构造方法:BufferedReader(Reader in)BufferedReader(Reader in)BufferedReader(Reader in,int size)BufferedReader(Reader in,int size)BufferedWriter(Writer out)BufferedWriter(Writer out)BufferedWriter(Writer out,int size)BufferedWriter(Writer out,int size)常用方法:常用方法:read
11、Line();newLine();readLine();newLine();1111第11页,共20页,编辑于2022年,星期一8.3.4 打印输出字符流打印输出字符流 PrintWriterPrintWriter提供字符流的输出处理。提供字符流的输出处理。PrintWriter(OutputStream out)PrintWriter(OutputStream out)PrintWriter(OutputStream PrintWriter(OutputStream out,Boolean autoflush)out,Boolean autoflush)PrintWriter(Writer
12、out)PrintWriter(Writer out)PrintWriter(Writer out,Boolean PrintWriter(Writer out,Boolean autoflush)autoflush)1212第12页,共20页,编辑于2022年,星期一8.4.1 文件描述文件描述在在java.iojava.io包中的包中的FileFile类提供了平台无关的方式来描类提供了平台无关的方式来描述目录和文件对象的属性。提供了很多的方法用来获述目录和文件对象的属性。提供了很多的方法用来获取路径、目录和文件的相关信息。取路径、目录和文件的相关信息。目录管理目录管理文件管理文件管理 1.
13、1.文件的生成文件的生成 2.2.文件名的处理文件名的处理 3.3.文件属性测试文件属性测试 4.4.文件信息处理文件信息处理1313第13页,共20页,编辑于2022年,星期一8.4.2 文件的顺序访问文件的顺序访问 1 1、引入、引入“java.iojava.io”包,包,import java.io.*;import java.io.*;2 2、根据数据源和输入输出的任务建立字节或字符、根据数据源和输入输出的任务建立字节或字符流。流。3 3、若需要对字节或字符信息组织加工位数据在已、若需要对字节或字符信息组织加工位数据在已建字节或字符流对象上建立数据流或缓冲流。建字节或字符流对象上建立数
14、据流或缓冲流。4 4、用输入输出流对象的成员方法进行读、用输入输出流对象的成员方法进行读/写操作,写操作,需要时可设置指针位置。需要时可设置指针位置。5 5、关闭流对象。、关闭流对象。2-52-5要考虑异常处理。要考虑异常处理。1414第14页,共20页,编辑于2022年,星期一8.4.3 文件的随机访问文件的随机访问 使用下列构造方法创建流:使用下列构造方法创建流:RandomAccessFile(String name,String mode);RandomAccessFile(File name,String mode);mode的取值为的取值为”r”或或”rw”1515第15页,共20
15、页,编辑于2022年,星期一8.5.1 串行化的概念和目的串行化的概念和目的 对象能记录自己状态以便将来再恢复的能力。对象能记录自己状态以便将来再恢复的能力。目的:目的:(1 1)支持)支持JavaJava的对象持续性。的对象持续性。(2 2)支持对象的远程调用。)支持对象的远程调用。(3 3)严严格格遵遵守守JavaJava的的对对象象模模型型,对对象象的的串串行行化化状状态态中应存有所有的关于种类的安全特性的信息。中应存有所有的关于种类的安全特性的信息。(4 4)允许对象定义自身的格式。)允许对象定义自身的格式。(5 5)尽量保持对象串行化的简单扼要,但可以进行扩)尽量保持对象串行化的简单
16、扼要,但可以进行扩展和定制。展和定制。1616第16页,共20页,编辑于2022年,星期一8.5.2 串行化方法串行化方法 1.1.定义一个可串行化的对象定义一个可串行化的对象 使此对象所属的类实现使此对象所属的类实现SerializableSerializable接口。接口。2.2.输出数据进行保存输出数据进行保存 使用输入输出流读取和保存对象的基本数使用输入输出流读取和保存对象的基本数据。据。1717第17页,共20页,编辑于2022年,星期一8.5.3 串行化注意事项串行化注意事项 1.1.串行化能保存的对象串行化能保存的对象2.2.transienttransient关键字关键字3.3
17、.安全问题安全问题1818第18页,共20页,编辑于2022年,星期一8.6 其他常用流其他常用流1、管道流、管道流PipedInputStream和和PipedOutputStream用于在不同的线程间直接传送数据。用于在不同的线程间直接传送数据。2、内存的访问、内存的访问ByteArrayInputStream和和ByteArrayOutputStream为提高安全而禁止任何程序直接对内存进行操作。为提高安全而禁止任何程序直接对内存进行操作。3、顺序流、顺序流SequenceInputStream和和SequenceOutputStream同一若干不同的流。同一若干不同的流。1919第19页,共20页,编辑于2022年,星期一总结总结1、掌握输入输出的基本概念、掌握输入输出的基本概念2、主要的字节流的使用。、主要的字节流的使用。3、主要的字符流的使用。、主要的字符流的使用。4、文件的顺序访问。、文件的顺序访问。5、文件的随机访问。、文件的随机访问。2020第20页,共20页,编辑于2022年,星期一