chap5_jsp中的文件操作概要

上传人:今*** 文档编号:107184692 上传时间:2019-10-18 格式:PPT 页数:23 大小:451KB
返回 下载 相关 举报
chap5_jsp中的文件操作概要_第1页
第1页 / 共23页
chap5_jsp中的文件操作概要_第2页
第2页 / 共23页
chap5_jsp中的文件操作概要_第3页
第3页 / 共23页
chap5_jsp中的文件操作概要_第4页
第4页 / 共23页
chap5_jsp中的文件操作概要_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《chap5_jsp中的文件操作概要》由会员分享,可在线阅读,更多相关《chap5_jsp中的文件操作概要(23页珍藏版)》请在金锄头文库上搜索。

1、1,第五章 JSP中的文件操作,5,2,内容提要,File类 使用文件字节流读写文件 使用文件字符流读写文件 BufferedReader和BufferedWriter类 文件上传与下载,3,输入输出流(I/O),Java的输入输出流(I/O)提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地 输入流的指向称为源,程序从指向源的输入流中读取源中的数据。输出流的指向是字节序列要去的目的地,程序通过向输出流中写入数据把信息传递到目的地,4,File类,File类的对象主要用来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读写权限等,不涉及对文件的读写操作,主要操作包括获取文

2、件属性和管理目录 File对象的构造方法: File(String filename); File(String directoryPath, String filename ); File(File f, String filename);,5,获取文件的属性,public String getName() 获取文件的名字。 public boolean canRead() 判断文件是否是可读的。 public boolean canWrite() 判断文件是否可被写入。 public boolean exists() 判断文件是否存在。 public long length() 获取文件的

3、长度(单位是字节)。 public String getAbsolutePath() 获取文件的绝对路径。 public String getParent() 获取文件的父目录。 public boolean isFile() 判断文件是否是一个正常文件,而不是目录,6,管理目录,public boolean mkdir() 创建一个目录,如果创建成功返回true,否则返回false(如果该目录已经存在将返回false)。 public boolean delete() 可以删除当前File对象代表的文件或目录,如果File对象表示的是一个目录,则该目录必须是一个空目录,删除成功返回true。

4、,7,管理目录,public String list() 用字符串形式返回该目录下的全部文件. public File listFiles() 用File对象形式返回该目录下的全部文件 public String list(FilenameFilter obj) 用字符串形式返回该目录下指定类型的文件. public File listFiles(FilenameFilter obj) 用File对象形式返回该目录下指定类型的文件 FlienameFilter是一个接口,该接口有一个方法: Public boolean accept(File dir, String name); 例5.1,8

5、,读写文件,java.io包提供大量的流类,所有字节输入流类都是InputStream(输入流)抽象类的子类,而所有字节输出流都是OutputStream(输出流)抽象类的子类。 字节流不能直接操作Unicode字符,所以Java提供了字符流。由于汉字在文件中占用2个字节,如果使用字节流,读取不当会出现乱码现象,采用字符流就可以避免这个现象。在Unicode字符中,一个汉字被看做一个字符。 所有字符输入流类都是Reader(输入流)抽象类的子类,而所有字符输出流都是Writer(输出流)抽象类的子类。,9,10,11,FlieInputStream类,构造函数: FileInputStream

6、(String name); FileInputStream(File file); 参数name和file指定的文件称为输入流的源,输入流通过调用read方法读出源中的数据 一般是在try-catch语句的try块部分创建输入流对象,在catch(捕获)部分检测并处理这个异常 int read(); int read(byte b); int read(byte b, int off, int len);,12,FlieOutputStream类,构造函数: FileOutputStream(String name); FileOutputStream(File file); 参数name和

7、file指定的文件称为输出流的目的地,通过向输出流写入数据把信息送往目的地 一般是在try-catch语句的try块部分创建输出流对象,在catch(捕获)部分检测并处理这个异常 void write(byte b); void write(byte b, int off, int len);,13,Reader类和Writer类,int read(); int read(char b); int read(char b, int off, int len); void close(); void write(int n); void write(char b); void write(cha

8、r b, int off, int len);,14,BufferedReader和BufferedWriter类,FileReader inOne=new FileReader(“student.txt”); BufferedReader inTwo=new BufferedReader(inOne); BufferedReader流可以使用方法String readLine() 读取一行 BufferedWriter流可以使用方法void write(String s, int off, int length)将字符串s的一部分写入文件, 使用newLine()向文件写入分行符. 例5.2

9、 例5.3,15,编码方式的分类,ASCII (数字、英文) :1 个字符占一个字节(所有的编码集都兼容 ASCII ) ISO-8859-1 (欧洲): 1 个字符占一个字节 GB-2312 : 1 个字符占两个字节。 GB 代表国家标准。 GBK 是在 GB 2312 上增加的一类新的编码方式,也是现在最常用的汉字编码方式。 Unicode: 1 个字符占两个字节(网络传输速度慢) UTF-8 :变长字节,对于英文一个字节,对于汉字两个或三个字节。,16,编码方式的分类,Unicode: 1 个字符占两个字节(网络传输速度慢) 在设计计算机系统的时候,有两种处理内存中数据的方法。 一种叫为

10、little-endian,小尾,存放在内存中最低位的数值是来自数据的最右边部分(也就是数据的最低位部分)。 另一种称为big-endian,大尾,正好相反,存放在内存中最低位的数值是来自数据的最左边边部分(也就是数据的最高为部分)。 大部分用户的操作系统(如windows, FreeBsd,Linux)是Little Endian的。少部分,如MAC OS ,是Big Endian 的。本质上说,Little Endian还是Big Endian与操作系统和芯片类型都有关系。,17,UTF-8编码,下列字节串用来表示一个字符. 用到哪个串取决于该字符在 Unicode 中的序号. U-000

11、00000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10

12、xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx xxx 的位置由字符编码数的二进制表示的位填入. 越靠右的 x 具有越少的特殊意义. 只用最短的那个足够表达一个字符编码数的多字节串. 注意在多字节串中, 第一个字节的开头“1“的数目就是整个串中字节的数目. 例如: Unicode 字符 U+00A9 = 1010 1001 (版权符号) 在 UTF-8 里的编码为: 11000010 10101001 = 0xC2 0xA9 而字符 U+2260 = 0010 0010 0110 0000 (不等于) 编码为: 11100010 10001001 10100000 = 0x

13、E2 0x89 0xA0,18,RandomAccessFile类,RandomAccessFile流的指向既可以作为源,也可以作为目的地 当需要对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流,这样既可以读也可以写 RandomAccessFile(String name, String mode) RandomAccessFile(File file, String mode) 参数mode取r或rw,决定对流文件的访问权限 方法seek(long a)用来移动RandomAccessFile流指向的文件的指针,参数a确定文件指针距离文件开头的字节位置

14、方法getFilePointer()可以获取当前文件指针的位置,19,文件上传,JSP页面提供File类型的表单,File类型的表单可以让用户选择要上传的文件。File类型表单的格式如下: bean负责将用户选择的文件上传到服务器。bean可以让内置对象request调用方法getInputStream()获得一个输入流,通过这个输入流读入客户上传的全部信息,包括文件的内容以及表单域的信息。bean可以从上传的全部信息中分离出文件的内容,并保存在服务器端。 例5.4,20,文件下载,Tomcat 5.5服务器提供了方便的下载功能。只需让内置对象response调用方法 response.set

15、Header(“Content-disposition“,“attachment; filename=“下载的文件名字“); 添加下载的头给客户的浏览器即可.,21,分行读取文件,例5.6,22,6.标准化考试,(1)使用网络进行标准化考试是一种常见的考试形式,大部分标准化考试都使用数据库来处理有关的数据。使用数据库可以方便地管理有关的数据,却降低了系统的效率。基于文件来管理有关的数据,可以提高系统的效率,但要求合理地组织有关数据,以便系统方便地管理数据。 (2)为了使bean方便地处理数据,要求试题文件存放在D:2000中,并且试题文件的第一行必须是全部试题的答案(用来判定考试者的分数)。例

16、如: BDB 1Take an umbrella with you in case_. A. it will rain B. it rains C.it raining D.it rained 2Could you tell me_ ? I am his old friend. A. where does Jim live B. when will Jim com back C. how is Jim D. where Jim has gone. 3During the recession,thousands of workers were_ ? A. laid on B. laid down C.laid out D.laid off 例5.7,23,jspSmartUpload,jspSmartUpload是由www.J网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。 1、使用简单。

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

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

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