JSP程序设计第五章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016/9/23
10
• 例5-1 使用上述方法获取某些文件的信息
2016/9/23
11
2016/9/23
12
§ 5.1 5 1 File类-创建目录
• 创建目录 public boolean mkdir() 调用该方法创建一个目录,如果创建成功就返回true, 否则返回false。
2016/9/23
2016/9/23
3
第五章 JSP 中的文件操作
• 代码重复是衡量软件可维护性的重要指标之一,因 代 复是衡 软件 维护性 要指标 , 此,为了体现代码复用的重要性,本章主要采用 JSP页面调用Tag文件对文件进行读、写操作。其示 意图如下:
2016/9/23
4
§ 5.1 5 1 File类
• File对象用来获取文件本身的 对象用来获取文件本身的一些信息。例如文件 些信息。例如文件 所在的目录、文件的长度、文件读写权限等,不 涉及对文件的读写操作。 • 创建一个 创建 个File i 对象的构造方法有3个: 个
File(String File(String ( g File(File f,
2016/9/23
filename); directoryPath, y , String g filename); ); String filename);
5
• File(String filename)方法 filename是文件名或者文件的绝对路径, 如:filename="Hello.txt" fil "H ll t t" 或者 filename="c:/mybook/A.txt" y
28
numBytes B t 个字节,并返回实际跳过的字节数目。 个字节 并返回实际跳过的字节数目
2016/9/23
§ 5.2 5 2 使用字节流读写文件
• OutputStream类的常用方法:
void void void
ຫໍສະໝຸດ Baidu
write(int n) 该方法向输出流写入单个字节。 write(byte b[]) 该方法向输出流写入一个字节数组。 。 write(byte b[], int off, int len) 从给定字节数组中起 close() () 关闭输出流。
始于偏移量off处取len个字节写入到输出流。 个字节写入到输出流
void
2016/9/23
29
§ 5.2.1 5 2 1 FileInputStream和FileOutputStream类 • FileInputStream p 类是InputStream p 的子类: 类
构造方法: FileInputStream(String name)
2016/9/23
6
• File(String directoryPath, String filename)方法 directoryPath是文件的路径 如:directoryPath di t P th ="c:/mybook/" " / b k/" filename是文件名 如:filename="A.txt"
int
read(): 从源中读取单个字节的数据,返回字节值(0~255 read(byte b[]) 从源中试图读取b.length个字节到字节数组b
之间的一个整数)。如果未读出字节就返回-1。
int
中,返回实际读取的字节数目。如果到达文件的末尾,则返回-1。
2016/9/23 26
§ 5.2 5 2 使用字节流读写文件
int
节数组 b 中,返回实际读取的字节数目。如果到达文件 的末尾 则返回-1 的末尾,则返回 1。
2016/9/23
27
§ 5.2 5 2 使用字节流读写文件
• InputStream p 类的常用方法: 类 常用方法
int
read(byte b[], int off, int len)从源中试图读取len个字
• InputStream p 类的常用方法: 类 常用方法
int i t
read() d(): 从源中读取单个字节的数据,返回字节值 从源中读取单个字节的数据 返回字节值 read(byte b[]) 从源中试图读取b.length个字节到字
(0~255之间的一个整数)。如果未读出字节就返回 ) 读 -1。
2016/9/23
24
§ 5.2 5 2 使用字节流读写文件
2016/9/23
25
§ 5.2 5 2 使用字节流读写文件
• j java.io 包提供大量的流类。 提供大 流类 InputStream p 类及其子类 类及其 类 对象称为字节输入流类, OutputStream 类及其子类 对象称为字节输出流。 • InputStream类的常用方法: 类的常用方法
8
§ 5.1 5 1 File类-获取文件的属性
• File类中常用方法: 类中常用方法
public String getName():获取文件的名字 public boolean canRead():判断文件是否是可读的 public boolean canWrite():判断文件是否可被写入 public boolean exists():判断文件是否存在 public bli long l l length() th():获取文件的长度(单位是字节) 获取文件的长度(单位是字节) public String getAbsolutePath():获取文件的绝对路径
FileInputStream(File file) ① 方 法 1 使 用 给 定 的 文 件 名 name 创 建 一 个 FileInputStream对象; ② 方法2使用File对象创建FileInputStream对象; ③ 参数name和file所指定的文件称为输入流的源,输入 所指定的文件称为输入流的源 输入 流通过调用read方法读出源中的数据 ; ④ 使用构造方法可能发生 使用构造方法 能发生IOException异常。 异常
节到字节数组b中,并返回实际读取的字节数目。如果到 达文件的末尾 则返回-1 达文件的末尾,则返回 1。参数 参数off指定从字节数组的某 个位置开始存放读取的数据。
void long
close() 输入流调用该方法关闭输入流。 skip(long numBytes) 输 入 流 调 用 该 方 法 跳 过
2016/9/23
22
• 例5-5 删除ch5目录下的example5_1.jsp和目录Students
2016/9/23
23
§ 5.2 5 2 使用字节流读写文件
• Java的I/O流提供 流提供一条通道程序 条通道程序,可以使用这条通道把 可以使用这条通道把 源中的数据送给目的地。 • 输入流的指向称为源,程序从指向源的输入流中读取 源中的数据。 • 输出流的指向是数据要去的一个目的地,程序通过向 输出流的指向是数据要去的 个目的地 程序通过向 输出流中写入数据把信息传递到目的地。
2016/9/23
19
• 例5-4 列出ch5目录下的部分jsp文件的名字
2016/9/23
20
• 例5-4 列出ch5目录下的部分jsp文件的名字
2016/9/23
21
§ 5.1 5 1 File类-删除文件和目录
• File对象调用方法 public boolean delete(); 可以删除当前对象代表的文件或目录。 如 File 对象表示的是一个目录,则该目录必须是一 如果 对象表 的 个 则该 必须 个空目录 删除成功将返回true。 个空目录,删除成功将返回
13
• 例5-2:在ch5目录下创建一个名字为students的目录
2016/9/23
14
§ 5.1 5 1 File类-创建目录
• 列出目录中的文件 public String[] list() 用字符串形式返回目录下的全部文件 public File [] listFiles() 用File对象形式返回目录下的全部文件
31
§ 5.2.1 5 2 1 FileInputStream和FileOutputStream类 • FileOutputStream p 类是OutputStream p 的子类: 类 构造方法: FileOutputStream(String name) FileOutputStream(File file) ① 方 法 1 使 用 给 定 的 文 件 名 name 创 建 一 个 FileOutputStream对象。 ② 方法2使用File对象创建FileOutputStream对象。 ③ 参数 name 和 file所指定的文件称为输出流的目的地, 输出流通过调用write方法把字节写入到目的地。 方法把字节写入到目的地 ④2016/9/23 使用构造方法可能发生IOException异常。
2016/9/23 18
§ 5.1 5 1 File类-创建目录
• FileNameFilter 是一个接口,该接口有一个方法: • public bli boolean b l accept(File t(Fil dir, di String St i name) ) 当list方法传递 方法传递一个实现该接口的对象时 个实现该接口的对象时,list方法将 在列出文件时,让该文件调用accept方法检测该文件 是否符合accept方法指定的目录和文件名字的要求。
2016/9/23 9
§ 5.1 5 1 File类-获取文件的属性
• File类中常用方法: 类中常用方法
public String getParent():获取文件的父目录 public boolean isFile():判断文件是否是正常文件, 而不是目录 public boolean isDirectroy():判断文件是否是一个目录 :判断文件是否是 个目录 public boolean isHidden():判断文件是否是隐藏文件 public boolean lastModified():获取文件最后修改的时间
2016/9/23
7
• File(File f, String filename)方法 f是指定成一个目录文件 是指定成 个目录文件 如:f f=new new File( File("c/mybook") c/mybook ) filename是文件名 如:filename ="A.txt"
2016/9/23
2016/9/23 30
例子:读取myfile.dat文件
try{ FileInputStream stream=new FileInputStream("myfile.dat"); } catch (IOException e){ System.out.println("File y p ( read error:" +e); ) } 文件输入流构造方法的另一种格式: try{ y{ File f=new File("myfile.dat"); ( y ); FileInputStream istream=new FileInputStream(f); } catch (IOException e){ System.out.println("File System.out.println( File read error: error:" +e); } 2016/9/23
2016/9/23
15
• 例5-3:输出ch5目录下的全部文件和全部子目录
2016/9/23
16
• 例5-3:输出ch5目录下的全部文件和全部子目录
2016/9/23
17
§ 5.1 5 1 File类-创建目录
• 列出指定类型的文件 public String[] list(FilenameFilter obj):该方法用字 符串形式返回目录下的指定类型的所有文件。 public File [] listFiles(FilenameFilter obj):该方法用 File对象返回目录下的指定类型的所有文件。
主讲人:易玉根(软件学院)
2016/9/23
1
第五章 JSP 中的文件操作
• 主要内容
File类 字节流 字符流 RandomAccess流 文件上传与下载
2016/9/23 2
第五章 JSP 中的文件操作
• 有时服务器需要将用户提交的信息保存到文件或根 据用户的要求将服务器中的文件的内容显示到用户 端 JSP 通过 Java 端。 J 的输入输出流来实现文件的读 / 写 操作。