24
JSP 动动动动动动动 1 10 第第 I/0 第第 第第 File 第第 SP 网网网网 Java 网网网网 I/O 网 网网网网网网网网网网网网网网 网网网网网网 网网网网网网 网网网网网网网网网网网网网网网网网网网网网 网网 File 网网网 网网 File myFile = new File(filePath , fileName) ; – 网网 1 网网 filePath 网网网网网网 – 网 2 网网网 fileName 网网网网网网 – 网 JSP 网网网 网网网网网网网网 网 网网网网 一,一 myFile 网网网网网网网网 – 网网网网网网网网网网网网网网网网网网网网网网网 myFile 网网网网 File 网网网网 网网网网网 网网网网网网网网网网网 ,。

创建 File 对象

  • Upload
    nolen

  • View
    144

  • Download
    0

Embed Size (px)

DESCRIPTION

创建 File 对象. SP 网页结合 Java 类库里的 I/O 类,可以轻易的开发具备文件存取功 能的网页程序 , 该类提供新增、删除与修改等操作文件相关功能所需的方法成员 。 创建 File 类的实体对象 : File myFile = new File(filePath , fileName) ; 第个 1 参数 filePath 代表文件路径 。 第 2 个参数 fileName 则是文件名称 。 当 JSP 解译这一段语法成功之后,一个名称为 myFile 的文件对象被建立 。 - PowerPoint PPT Presentation

Citation preview

Page 1: 创建 File 对象

JSP 动态网页新技术 1

第 10 章 文件 I/0 技术

创建 File 对象

SP 网页结合 Java 类库里的 I/O 类,可以轻易的开发具备文件存取功 能的网页程序 ,该类提供新增、删除与修改等操作文件相关功能所

需的方法成员 。

创建 File 类的实体对象 :

File myFile = new File(filePath , fileName) ; – 第个 1 参数 filePath 代表文件路径 。– 第 2 个参数 fileName 则是文件名称 。– 当 JSP 解译这一段语法成功之后,一个名称为 myFile 的文件对

象被建立 。 – 文件对象根据参数所指定路径下的文件,以后网页则以 myFile

名称引用 File 对象的特定方法成员,进行文件操作维护操作。

Page 2: 创建 File 对象

JSP 动态网页新技术 2

第 10 章 文件 I/0 技术

创建 File 对象 - 目录

建立参考至特定目录的 File 对象 。

File myFile = new File(filePath) ;

– filePath 为特定的目录路径

File 本身所代表的是一种路径,无论这个路径是指向目录或是特定的文件 。

Page 3: 创建 File 对象

JSP 动态网页新技术 3

第 10 章 文件 I/0 技术

加载 java.io 命名空間

File 类位于命名空间 Java.io ,因此在 JSP 网页使用 File 类之前,必须利用以下的程序代码,将此命名空间载入 :

<%@ page import ="Java.io.*" %>

Page 4: 创建 File 对象

JSP 动态网页新技术 4

第 10 章 文件 I/0 技术

File 类属性存取 方 法 说 明

isDirectory() 返回一个布尔值, true 示为目录, false 则是文件,用以判断 File 对象所参考的路径是否为目录

isFile() 返回一个布尔值, true 示为文件, false 则是目录,用以判断 File 对象所参考的路径是否为文件

canRead() 返回布尔值, true 表示此为允许读取的文件

CanWrite() 返回布尔值, true 表示此为允许写入的文件

Exists() 返回一个布尔值, true 表示参考的文件目录存在

GetName() 取得 File 对象所参考的路径底下目录或文件名称

GetPath() 取得 File 对象所参考的路径字符串

ToString() 将 File 对象转换成为以字符串类型的名称表示

Equals() 比较两个 File 对象是否相等

Page 5: 创建 File 对象

JSP 动态网页新技术 5

第 10 章 文件 I/0 技术

文件维护操作

方 法 说 明

CreateNewFile() 建立一个新的文件

delete() 删除指定的文件

renameTo() 重新命名文件

setReadonly 将文件对象所参照的文件设为只读

mkdir() 建一指定的目录

mkdirs() 建立指定路径下的所有目录

Page 6: 创建 File 对象

JSP 动态网页新技术 6

第 10 章 文件 I/0 技术

新建文件

CreateNewFile() 的方法成员,用以建立 File 对象参数所指定的文件 。

bool blCreate = myFile.CreateNewFile() ;

– 结果值为 true ,表示文件建立成功;若是 false 则表示文件建立失败,并且返回一个 IOException 例外对象 。

Page 7: 创建 File 对象

JSP 动态网页新技术 7

第 10 章 文件 I/0 技术

建立目录文件夹 mkdir 用以建立指定的目录。

File myFile = new File(pathName) ; bool blMK = myFile.mkdir() ;

– 引用这个方法所要建立的是一个目录,因此第 1 行程序代码中所指定的参数值必须是一个路径而非文件 。

若是 mkdirs() 指定的目录路径不存在,则整个目录结构均会被建立。

File myMkDirs = new File("C:/firstDir/secondDir/thirdDir") ;blNew = myMkDirs.mkdirs() ;

– C:/firstDir/secondDir/thirdDir 这个路径的文件夹以及子文件 夹,都会被建立 。

Page 8: 创建 File 对象

JSP 动态网页新技术 8

第 10 章 文件 I/0 技术

刪除文件与目录文件夹

删除文件或者是目录只要引用 File 类所提供方法成员 delete() 即可 。

delete 方法有一个布尔类型的返回值,若是成功删除指定删除文件,则返回值为 true ,当指定的文件不存在,或是指定的文件删除失败,则返回值为 false 。

delete 方法只能删除空目录,若是目录底下存在任何文件或是子目录,删除的操作会失败,并且返回一个代表删除目录失败的false 布尔值 。

Page 9: 创建 File 对象

JSP 动态网页新技术 9

第 10 章 文件 I/0 技术

列举文件目录结构

方 法 说 明

list() 列举指定目录下,所有的子目录以及文件成员名称,并且以一个包含所有成员名称的 String 数组回传 。

listFiles() 同 listFiles ,其返回值为 File 对象

listRoots() 列出当前系统里,所有的根目对象,以 File 对象类型返回

GetParent() 返回特定文件目录其上一层的目录文件字符串名称

GetParent() 返回特定文件目录其上一层的目录文件对象

Page 10: 创建 File 对象

JSP 动态网页新技术 10

第 10 章 文件 I/0 技术

列举文件目录结构

list() 用以获取指定目录底下,所有的成员名称, listFiles 则是将所有成员存放于一个 File 数组对象返回,引用方法如下 :

String[] strFiles = myFile.list() ; File[] objFiles = myFile.listFiles() ;

– strFiles 数组包含 myFile 下所有文件和子目录的名称字符串 – objFiles 则是包含 myFile 下,代表所有文件以及子目录的对象

数组 。– 只有当 myFile 这个 File 对象所代表的是一个目录的时候,才

会有意义,若是其参照对象是一个文件,则返回值一律为 null 。

– 操作的文件或是目录本身不允许存取,则系统会产生一个与安全相关的例外对象, SecurityException 禁止程序对文件目录不合法的存取 。

Page 11: 创建 File 对象

JSP 动态网页新技术 11

第 10 章 文件 I/0 技术

列举文件目录结构

方法 listRoots() 被设计用以列举文件系统里,所有根目录的名称代号 。

File[] strFiles = File.listRoots() ;

– listRoots() 是用以直接列举应用程序运行系统中,所有的根目录文件对象,而非针对特定目录,因此必须直接以 File 类引用这个方法 。

getParent() 可用以取得指定目录文件的上层目录,其返回值为一个代表当前文件位置的上一层目录路径,这个方法有两种版本,除了 getParent() ,另外还有一个 getParentFile() ,这个版本的方法直接回传一个代表上层目录的 File 对象 。

Page 12: 创建 File 对象

JSP 动态网页新技术 12

第 10 章 文件 I/0 技术

写入文件数据

文件被用以储存各种数据内容 。

FileWriter() 负责将数据写入文件 。

FileReader() 用以读取文件中的数据 。

Page 13: 创建 File 对象

JSP 动态网页新技术 13

第 10 章 文件 I/0 技术

写入文件数据 将数据写入文字文件之前,首先必须建立 FileWriter 对象,同时传入所要操作的文

件完整路径名称字符串 。 FileWriter myFileWriter = new

FileWriter(fileName )– myFileWriter 为参考路径文件 fileName 的写入文件对象 ,允许应用程序将文

字数据写入其中 。

传入 文件对象 myFile 即可建立用以编辑的写入文件对象 。FileWriter myFileWriter =

new FileWriter(myFile )

Write 方法可以写入各种类型的数据内容 。

FileWriter myFW = new FileWriter("test.txt") ;myFW.write("This is a test String") ;

Page 14: 创建 File 对象

JSP 动态网页新技术 14

第 10 章 文件 I/0 技术

读取文件数据

建立一个 FileReader 对象,然后引用其提供的方法成员 Reader ,读取文件的数据内容 。

FileReader   myFileReader   = new FileReader(strFileName) ;

FileReader   myFileReader   = new FileReader(objFile) ;

Page 15: 创建 File 对象

JSP 动态网页新技术 15

第 10 章 文件 I/0 技术

读取文件数据

read() 方法一次读取文件中的一个字符,并且返回代表这个字符的整数值 。

int i ; char chrRead() ; i = myFileReader.read() ; chrRead = (char)i;

– 由于 read 方法所返回的结果为字符数据的整数类型,将其进一步转型为 char 类型以输出正确的文字数据 。

read 方法的另外一个版本可以一次读取指定特定长度的数据内容 。char[]arrChar = new char[1024] ;myFileReader.read(arrChar) ;

– 读取的字符被储存至字符组数组参数 arrChar ,返回值为所读取的字符数目 。

Page 16: 创建 File 对象

JSP 动态网页新技术 16

第 10 章 文件 I/0 技术

文件上传功能

两个被广泛使用的上传包:

jspSmart 所提供的 jspSmartUpload 包 。

O’Reilly 的 MultipartRequest 。

Page 17: 创建 File 对象

JSP 动态网页新技术 17

第 10 章 文件 I/0 技术

jspSmartUpload 上传操作

jspSmartUpload 包中的类 SmartUpload ,提供上传操作所需的功能,分成 3 个阶段:

初始化 上传 储存文件

Page 18: 创建 File 对象

JSP 动态网页新技术 18

第 10 章 文件 I/0 技术

初始化

theSmartUpload 为 SmartUpload 的名称, pageContext 则是初始化过程所需的对象 。

theSmartUpload.initialize(pageContext) ;

设定所允许的文件大小。

theSmartUpload.setTotalMaxFileSize

(10*1024*1024) ;

Page 19: 创建 File 对象

JSP 动态网页新技术 19

第 10 章 文件 I/0 技术

上传

初始化完成之后,紧接着直接调用 upload() ,开始进行上传操作 ,调用方法如下所示:

theSmartUpload.upload() ;

这个方法没有任何参数,它将表单上所有指定的文件直接上传 。

Page 20: 创建 File 对象

JSP 动态网页新技术 20

第 10 章 文件 I/0 技术

储存文件 save() 用来指定上传之后文件所要储存的位置 。

fileCount=theSmartUpload.save(fileSavePath) ;– fileSavePath 代表所要上传之后的文件所要储存的位置。– save() 方法完成文件的储存工作之后,便会返回一个代表上传

文件数目的整数值,上式的 fileCount 用来储存这个值。

HTML 文件文本框标签,可以提供文件文本框的需求。<input type=file name=File1 size=50 />

用来包含文件标签的表单,其编码格式必须设定为 multipart/form-data 。<form action=actionpage enctype="multipart/form-data" >

Page 21: 创建 File 对象

JSP 动态网页新技术 21

第 10 章 文件 I/0 技术

获取文件信息

方 法 说 明

getFieldName() 文件来自表单的属性名称

getFileName() 文件名称

getFileExt() 文件扩展名

getFilePathName() 文件路径名称

getContentType() 文件类型

getSize() 文件大小

Page 22: 创建 File 对象

JSP 动态网页新技术 22

第 10 章 文件 I/0 技术

保存上传文件

setTotalMaxFileSize() 用来限制允许上传的文件类型 。

theSmartUpload.setAllowedFilesList(fileType) ;

fileType 代表允许上传的文件类型字符串 。

theSmartUpload.setAllowedFilesList("txt,htm") ;

Page 23: 创建 File 对象

JSP 动态网页新技术 23

第 10 章 文件 I/0 技术

保存上传文件

saveAs() 用来指定上传文件所要储存的路径与文件名 。

  theFile.saveAs(fileName,pathType) ;

– fileName 为所要储存的路径以及文件名称 ,– pathType 則是设定路径的类型,这是一个列举值,可用的值

有 3 个,分别是 SAVE_PHYSICAL 、 SAVE_VIRTUAL 和SAVE_AUTO ,分别代表实体、虚拟和自动设定 。

Page 24: 创建 File 对象

JSP 动态网页新技术 24

第 10 章 文件 I/0 技术

MultipartRequest 方法成员

方 法 说 明

getFileNames() 取得包含所有文件上传文件名称的Enumeration 对象

getFilesystemName(fieldName)

取得文件名名称

getContentType(fieldName) 取得文件名类型

getFile(fieldName) 取得 File 文件对象