JSP实用简明教程(课件) 教学课件 ppt 作者 ch07

上传人:E**** 文档编号:89347878 上传时间:2019-05-23 格式:PPT 页数:26 大小:115KB
返回 下载 相关 举报
JSP实用简明教程(课件) 教学课件 ppt 作者 ch07_第1页
第1页 / 共26页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch07_第2页
第2页 / 共26页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch07_第3页
第3页 / 共26页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch07_第4页
第4页 / 共26页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch07_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《JSP实用简明教程(课件) 教学课件 ppt 作者 ch07》由会员分享,可在线阅读,更多相关《JSP实用简明教程(课件) 教学课件 ppt 作者 ch07(26页珍藏版)》请在金锄头文库上搜索。

1、2019年5月23日,1,第7章 JSP中的文件操作,教学目标 教学重点 教学过程,2019年5月23日,2,教学目标,了解异常处理的概念和使用 掌握JSP的输入和输出流 掌握在页面中读写文件中的数据 掌握如何进行文件操作,2019年5月23日,3,教学重点,异常的处理 JSP的输入和输出流 File类 读写文件中的数据 文件操作,2019年5月23日,4,教学过程,文件操作相关异常处理 JSP的输入和输出流 File类概数 在页面中读写文件中的数据,2019年5月23日,5,7.1 文件操作相关异常处理,异常处理概述 为什么要使用异常处理 异常类的层次 异常的处理 自定义异常,2019年5月

2、23日,6,异常处理概述,程序“异常”(Exception),是指程序运行中进入一种“例外”的情况,也就是正常情况之外的一种“异常”。由于程序可能碰到的错误并不都能在源代码编译期间被检测到,有些问题必须在程序的运行期中解决,这样“异常”的情况将通过一些手续向接收者传递,令其知道应该如何正确处理此问题。这些手续被称为异常处理(Exception Handling)。JSP和一般的Java程序,通过使用异常类和与之相伴的逻辑,提供一种处理预料之外情况的机制,合理的处理异常,会大大减少程序挂起或崩溃的机会。程序执行时发生异常的情况有多种: 要打开的文件可能不存在 要装入的类文件可能遗失或格式错误 网

3、络连接的另一端可能不存在 由下某种莫名其妙的原因干扰了网络的连接 操作数不在预定的合法范困内。例如,数组元素索引不能超过数组长度;除法运算的除数不能为零。,2019年5月23日,7,为什么要使用异常处理,由于程序员无法在源代码编写、编译阶段找到或者解决所有可能出现的程序的异常情况,这些异常很可能是因为别人的代码的不完善而产生的。当错误发生时,由于本地可能得不到处理错误所需要的高级的信息,因此可以把此异常交给更高级的处理者。而异常处理另一方面也简化了基本的错误控制代码:如果多个地方可能发生同一种错误的话,只需要在一个地方进行处理问题,“异常处理模块”或者“异常控制器”。这样做的优点在于,一方面可

4、以减少代码量,另一方面,处理程序错误的代码可以跟正常运行的代码分离,让程序富有条理。,2019年5月23日,8,异常类的层次,每个异常都是一个对象,所有异常类型都是内置类Throwable的子类。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,而调用这个对象的方法将捕获到这个异常并进行处理。Throwable类有两个标准子类,分别是:Error(错误)和Exception(异常): Error(错误)类:一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类虚拟机的错误一定是无法恢复或不可能捕获的,它们将会导致应用程序中断。 Exception(异常)类:则

5、是指一些可以被捕获且可能恢复的异常情况,如数组下标越界、数字被零除产生异常(ArithmeticException)、输入/输出异常(IOException)等。在Exception分支中有一个重要子类RuntimeException,该类型的异常自动为所编写的程序定义,并且包括被零除和非法数组索引这样的错误。,2019年5月23日,9,异常的处理,Java异常处理通过5个关键字控制:try、catch、throw、throws和finally 。 在try语句块中的是用户试图运行的语句,try语句块将把发生的异常发送到相对应的catch语句块中,并且从发生异常的地方停止运行。catch子句,

6、又称异常处理程序,是一个只有在异常发生时才调用的语句块,其目的是解决异常情况,把变量设到合理的状态,并且像错误没有发生一样继续运行。捕获异常的第一步就是用try选定要捕获异常的范围,在执行时,括号内的代码会产生异常对象并被抛出。然后就可以用catch语句块来处理异常了 。,2019年5月23日,10,finally子句在一个try/catch语句完成之后,另一个try/catch语句出现之前执行。finally语句无论有没有异常引发都会执行。如果异常被引发,finally子句甚至是在没有与该异常相匹配的catch子句情况下也将执行。一个方法将从一个try/catch语句返回到调用程序的任何时候

7、,经过一个未捕获的异常或者是一个明确的返回语句,finally子句在方法返回之前仍将执行。这在关闭文件语句和释放任何在方法开始时被分配的其他资源是很有用的。finally子句是可选项,可以有也可以无。然而每一个try语句至少需要一个catch或finally子句。无论try语句块在运行过程中发生了什么情况,无论控制权发生了什么变化finally语句块中的语句都要执行 。,2019年5月23日,11,throw语句用来明确地抛出一个异常类。首先,必须得到一个Throwable类或其它子类产生的实例句柄,通过参数传到catch子句,或者用new语句来创建一个实例。 throws语句用来标明一个成员

8、函数可能抛出的各种异常。如果异常的类型是Error和RuntimeException,或者它们的子类,这个规则不起作用。如果想明确地抛出一个RuntimeException,就必须用throws语句来声明它的类型。,2019年5月23日,12,自定义异常,要建立自己的异常类型来处理所应用的特殊情况,通常来说,只要定义Exception的一个子类就可以了,Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法,因此,所有异常,包括新创建的,都可以获得Throwable定义的方法。,2019年5月23日,13,7.2 JSP的输入和输出流,字节流 字符流,2019

9、年5月23日,14,字节流,字节流类为处理字节式输入/输出提供了丰富的环境。一个字节流可以和其他任何类型的对象并用,包括二进制数据。这样的多功能性使得字节流对很多类型的程序都很重要。字节流类以InputStream和OutputStream为顶层。 InputStream(输入流)是一个定义了流式字节输入模式的抽象类,该类的所有方法在出错条件下引发一个IOException异常。 OutputStream(输出流)是定义了流式字节输出模式的抽象类。该类的所有方法返回一个void值并且在出错情况下引发一个IOException异常。下面介绍几个字节流的使用。,2019年5月23日,15,字符流,

10、尽管字节流提供了处理任何类型输入/输出操作的足够的功能,但它们不能直接操作Unicode字符,字符流面向字符,读写的单位是2字节。字符流以Reader和Writer为顶层。 Reader是定义Java的流式字符输入模式的抽象类,该类的所有方法在出错情况下都将引发IOException异常。 Writer是定义流式字符输出的抽象类,所有该类的方法都返回一个void值并在出错条件下引发IOException异常。,2019年5月23日,16,7.3 File类概数,除了一些流式操作的类外,还有一些用于文件系统操作的类,即File类。File类直接处理文件和文件系统,也就是说,File类没有指定信息

11、怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。另外,File还浏览子目录层次结构。可以用来生成File对象的构造函数为: File(String directoryPath) File(String directoryPath,String filename) File(File dirObj,String filename) directoryPath是文件的路径名,filename是文件名,dirObj一个指定目录的File对象。,2019年5月23日,17,File 还包括两个有用的实用工具方法:ren

12、ameTo()和delete()。 boolean renameTo(File newName) /删除由被调用的File对象的路径指定的磁盘文件 boolean delete() 这里,由newName指定的文件名变成了所调用的File对象的新的名称。如果更名成功则返回ture,文件不能被重命名(例如,试图重命名文件以使它从一个目录转到另一个目录,或者使用了一个已经存在的文件名),否则返回false。在目录为空时可以用delete()删除目录。如果删除了文件,delete()返回true,如果文件不能被删除,则返回false。,2019年5月23日,18,目录,目录是一个包含其他文件和路径列

13、表的File类。当你创建一个File对象且它是目录时,isDirectory()方法返回ture。因此,可以利用File类可以遍历某一个目录下的所有文件和子目录。File类列目录的方法为list(),其格式为: String list() list()方法中不指明任何参数,这种情况下可以列出某个目录所有的文件和子目录。,2019年5月23日,19,创建目录,File类提供了一系列方法来创建目录。File类的createNewFile()方法可用来创建一个目录;createTempFile()方法用于创建一个临时文件;mkdir()方法创建了一个目录,创建成功返回true,创建失败返回false

14、,创建失败是指File对象指定的目录已经存在,或者是因为整个路径不存在而不能创建目录;用mkdirs()方法用来创建目录以及该目录所有的父目录,例如,要创建目录“D:/root/sub”,如果“D:/root”原本没有,mkdirs()会自己创建。,2019年5月23日,20,获取信息,File类提供了很多方法获取一个文件或者是目录的信息,例如用用fileToCheck()方法来获取信息(例如文件的名字、路径、绝对路径、大小等信息)。,2019年5月23日,21,7.4 在页面中读写文件中的数据,读取操作 写入操作 追加操作 在任意位置读取、写入操作,2019年5月23日,22,读取操作,读取

15、文件是文件操作最基本的内容之一,例如打开一个文件,然后读取该文件中的数据,并且把它们显示到浏览器里。,2019年5月23日,23,写入操作,用JSP向文件写入内容的原理与读取文件的原理是一样的,即通过一个JavaBeans组件建立起与所要写入内容的目标文件的联系,然后在.jsp文件中创建JavaBeans的实例(即使用标签),然后就可以对文件进行写入操作了。,2019年5月23日,24,追加操作,在绝大多数情况下,对文件进行的追加操作是在文件的末尾增加新数据(不是简单的覆盖),而不影响文件中原有的记录。例如,在对用户的一些情况进行记录时,希望新用户的信息追加在有关文件的末尾。,2019年5月2

16、3日,25,在任意位置读取、写入操作,前面所讲的读写操作在读写文件时,必须从这个文件的开始一直到文件的结束。而如果对一个文件访问时必须跳过若干字节,这就需要一种可以在一个文件任意位置读写数据的方法,RandomAccessFile就提供了这样的方法。 RandomAccessFile不属于InputStream或者OutputStream分层结构,它能同时实现DataInput和DataOutput接口,因此,RandomAccessFile既能够对一个文件进行读也可以对一个文件进行写。 new RandomAccessFile(“file.txt“,“reader“);/打开一个文件用于读取操作 new RandomAccessFile(“file.txt“,“writer“);/打开一个文件用于写入操作,2019年5月23日,26,7.5 文件操作实例,文件的创建、检查与删除。这个例子的在当前目录下创建和删除文件,如果没有文件就创建文件,文件存在就删除该文件。 复制文件。这个例子就是将指定文件内容复制一份到另一个文件中,而且指定的文件必须是已经存在的,否则无法复

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号