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