240 likes | 429 Views
创建 File 对象. SP 网页结合 Java 类库里的 I/O 类,可以轻易的开发具备文件存取功 能的网页程序 , 该类提供新增、删除与修改等操作文件相关功能所需的方法成员 。 创建 File 类的实体对象 : File myFile = new File(filePath , fileName) ; 第个 1 参数 filePath 代表文件路径 。 第 2 个参数 fileName 则是文件名称 。 当 JSP 解译这一段语法成功之后,一个名称为 myFile 的文件对象被建立 。
E N D
创建File对象 • SP网页结合Java类库里的I/O类,可以轻易的开发具备文件存取功 能的网页程序 ,该类提供新增、删除与修改等操作文件相关功能所需的方法成员 。 • 创建File类的实体对象 : File myFile = new File(filePath , fileName) ; • 第个1参数filePath代表文件路径 。 • 第2个参数fileName则是文件名称 。 • 当JSP解译这一段语法成功之后,一个名称为myFile的文件对象被建立 。 • 文件对象根据参数所指定路径下的文件,以后网页则以myFile名称引用File对象的特定方法成员,进行文件操作维护操作。 JSP 动态网页新技术
创建File对象-目录 • 建立参考至特定目录的File对象 。 File myFile = new File(filePath) ; • filePath为特定的目录路径 • File本身所代表的是一种路径,无论这个路径是指向目录或是特定的文件 。 JSP 动态网页新技术
加载java.io 命名空間 File类位于命名空间Java.io,因此在JSP网页使用File类之前,必须利用以下的程序代码,将此命名空间载入 : <%@ page import ="Java.io.*" %> JSP 动态网页新技术
方 法 说 明 isDirectory() 返回一个布尔值,true示为目录,false则是文件,用以判断File对象所参考的路径是否为目录 isFile() 返回一个布尔值,true示为文件,false则是目录,用以判断File对象所参考的路径是否为文件 canRead() 返回布尔值,true表示此为允许读取的文件 CanWrite() 返回布尔值,true表示此为允许写入的文件 Exists() 返回一个布尔值,true表示参考的文件目录存在 GetName() 取得File对象所参考的路径底下目录或文件名称 GetPath() 取得File对象所参考的路径字符串 ToString() 将File对象转换成为以字符串类型的名称表示 Equals() 比较两个File对象是否相等 File类属性存取 JSP 动态网页新技术
方 法 说 明 CreateNewFile() 建立一个新的文件 delete() 删除指定的文件 renameTo() 重新命名文件 setReadonly 将文件对象所参照的文件设为只读 mkdir() 建一指定的目录 mkdirs() 建立指定路径下的所有目录 文件维护操作 JSP 动态网页新技术
新建文件 CreateNewFile()的方法成员,用以建立File对象参数所指定的文件 。 bool blCreate = myFile.CreateNewFile() ; • 结果值为true,表示文件建立成功;若是false则表示文件建立失败,并且返回一个IOException例外对象 。 JSP 动态网页新技术
建立目录文件夹 • 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这个路径的文件夹以及子文件 夹,都会被建立 。 JSP 动态网页新技术
刪除文件与目录文件夹 • 删除文件或者是目录只要引用File类所提供方法成员delete() 即可 。 • delete方法有一个布尔类型的返回值,若是成功删除指定删除文件,则返回值为true,当指定的文件不存在,或是指定的文件删除失败,则返回值为false 。 • delete方法只能删除空目录,若是目录底下存在任何文件或是子目录,删除的操作会失败,并且返回一个代表删除目录失败的false布尔值 。 JSP 动态网页新技术
方 法 说 明 list() 列举指定目录下,所有的子目录以及文件成员名称,并且以一个包含所有成员名称的String数组回传 。 listFiles() 同listFiles,其返回值为File对象 listRoots() 列出当前系统里,所有的根目对象,以File对象类型返回 GetParent() 返回特定文件目录其上一层的目录文件字符串名称 GetParent() 返回特定文件目录其上一层的目录文件对象 列举文件目录结构 JSP 动态网页新技术
列举文件目录结构 list()用以获取指定目录底下,所有的成员名称,listFiles则是将所有成员存放于一个File数组对象返回,引用方法如下 : String[] strFiles = myFile.list() ; File[] objFiles = myFile.listFiles() ; • strFiles数组包含myFile下所有文件和子目录的名称字符串 • objFiles则是包含myFile下,代表所有文件以及子目录的对象数组 。 • 只有当myFile这个File对象所代表的是一个目录的时候,才会有意义,若是其参照对象是一个文件,则返回值一律为null 。 • 操作的文件或是目录本身不允许存取,则系统会产生一个与安全相关的例外对象,SecurityException禁止程序对文件目录不合法的存取 。 JSP 动态网页新技术
列举文件目录结构 • 方法listRoots()被设计用以列举文件系统里,所有根目录的名称代号 。 File[] strFiles = File.listRoots() ; • listRoots()是用以直接列举应用程序运行系统中,所有的根目录文件对象,而非针对特定目录,因此必须直接以File类引用这个方法 。 • getParent()可用以取得指定目录文件的上层目录,其返回值为一个代表当前文件位置的上一层目录路径,这个方法有两种版本,除了getParent(),另外还有一个getParentFile(),这个版本的方法直接回传一个代表上层目录的File对象 。 JSP 动态网页新技术
写入文件数据 • 文件被用以储存各种数据内容 。 • FileWriter()负责将数据写入文件 。 • FileReader()用以读取文件中的数据 。 JSP 动态网页新技术
写入文件数据 • 将数据写入文字文件之前,首先必须建立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") ; JSP 动态网页新技术
读取文件数据 建立一个FileReader对象,然后引用其提供的方法成员Reader,读取文件的数据内容 。 FileReader myFileReader = new FileReader(strFileName) ; FileReader myFileReader = new FileReader(objFile) ; JSP 动态网页新技术
读取文件数据 • read()方法一次读取文件中的一个字符,并且返回代表这个字符的整数值 。 int i ; char chrRead() ; i = myFileReader.read() ; chrRead = (char)i; • 由于read方法所返回的结果为字符数据的整数类型,将其进一步转型为char类型以输出正确的文字数据 。 • read方法的另外一个版本可以一次读取指定特定长度的数据内容 。 char[]arrChar = new char[1024] ; myFileReader.read(arrChar) ; • 读取的字符被储存至字符组数组参数arrChar,返回值为所读取的字符数目 。 JSP 动态网页新技术
文件上传功能 两个被广泛使用的上传包: • jspSmart所提供的jspSmartUpload包 。 • O’Reilly的MultipartRequest 。 JSP 动态网页新技术
jspSmartUpload上传操作 jspSmartUpload 包中的类SmartUpload ,提供上传操作所需的功能,分成3个阶段: • 初始化 • 上传 • 储存文件 JSP 动态网页新技术
初始化 • theSmartUpload为SmartUpload的名称,pageContext则是初始化过程所需的对象 。 theSmartUpload.initialize(pageContext) ; • 设定所允许的文件大小。 theSmartUpload.setTotalMaxFileSize (10*1024*1024) ; JSP 动态网页新技术
上传 初始化完成之后,紧接着直接调用upload(),开始进行上传操作 ,调用方法如下所示: theSmartUpload.upload() ; 这个方法没有任何参数,它将表单上所有指定的文件直接上传 。 JSP 动态网页新技术
储存文件 • 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" > JSP 动态网页新技术
方 法 说 明 getFieldName() 文件来自表单的属性名称 getFileName() 文件名称 getFileExt() 文件扩展名 getFilePathName() 文件路径名称 getContentType() 文件类型 getSize() 文件大小 获取文件信息 JSP 动态网页新技术
保存上传文件 • setTotalMaxFileSize()用来限制允许上传的文件类型 。 theSmartUpload.setAllowedFilesList(fileType) ; • fileType代表允许上传的文件类型字符串 。 theSmartUpload.setAllowedFilesList("txt,htm") ; JSP 动态网页新技术
保存上传文件 saveAs()用来指定上传文件所要储存的路径与文件名 。 theFile.saveAs(fileName,pathType) ; • fileName为所要储存的路径以及文件名称 , • pathType則是设定路径的类型,这是一个列举值,可用的值有3个,分别是SAVE_PHYSICAL、SAVE_VIRTUAL和SAVE_AUTO,分别代表实体、虚拟和自动设定 。 JSP 动态网页新技术
方 法 说 明 getFileNames() 取得包含所有文件上传文件名称的Enumeration对象 getFilesystemName(fieldName) 取得文件名名称 getContentType(fieldName) 取得文件名类型 getFile(fieldName) 取得File文件对象 MultipartRequest方法成员 JSP 动态网页新技术