07第7章 Jsp文件操作10.docx
- 文档编号:7048862
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:18
- 大小:165.85KB
07第7章 Jsp文件操作10.docx
《07第7章 Jsp文件操作10.docx》由会员分享,可在线阅读,更多相关《07第7章 Jsp文件操作10.docx(18页珍藏版)》请在冰豆网上搜索。
07第7章Jsp文件操作10
第7章
JSP文件操作
本章知识结构框图
本章知识要点
1.JSP文件操作的基础知识;
2.JSP对目录的创建、删除操作;
3.JSP对文件的创建、删除、读取、写入。
本章学习方法
1.了解必须的理论基础,掌握必须的常用方法;
2.以实例练习带动知识理解;
3.通过综合实例全面深入理解文件及目录的操作。
须从刻苦的学习中成长。
今天,我们开始了电子商务网站建设的学习之旅。
扎扎实实地学好理论基础,广泛涉猎网站建设知识精华,必将成就你们辉煌的人生……
学习激励与案例导航
程序人员之求伯君
丁磊,网易公司首席架构设计师,1971年生于浙江宁波。
2007福布斯中国富豪榜排名第63位,资产75亿元,1997年6月创立网易公司,将网易从一个十几个人的私企发展成今天拥有近300名员工并在美国公开上市的知名互联网技术企业。
搜狐公司董事局主席兼首席执行官,1964年生于陕西省西安市,1986年毕业于清华大学物理系,同年以全国第39名成绩,考取李政道奖学金赴美留学,1998年2月25日,正式成立搜狐公司。
在张朝阳的领导下搜狐历经四次融资,于2000年7月12日,在美国纳斯达克成功挂牌上市。
面对一个个网络精英创造的辉煌,面对世人感叹创业的艰辛!
做为大学生的我们一定明白,刻苦努力地学习,拥有过硬的本领,有朝一日,我们也会和他们一样,气宇轩昂地走在成功的大道上!
7.1Jsp文件操作概述
当前,应用软件离不开数据,数据在计算机中存在主要有两种形式,一是数据库,二是文件。
对存储在计算机中的文件进行操作是编程者经常用到的操作。
JSP为文件操作提供了丰富的类,这些类完成了文件操作的全部功能。
7.1.1JSP文件操作基础
大量的文件组成了计算机的软件系统。
文件操作是互联网重要应用之一,也是Jsp课程不可缺少的关键内容之一,如图7-1所示,常见的QQ聊天软件、电子邮箱都是互联网文件应用的典型。
1.文件操作的功能
文件与数据库完成了对网络数据的存储、读取的操作。
实现了网络数据的安全、方便存储。
但比较小的文件存取使用文件方式操作更方便、更快速。
Jsp的文件操作功能完成了对服务器文件操作的全部功能,尤如操作本地硬盘目录和文件一样方便。
图7-1常用的互联网文件操作实例
2.文件操作的内容
文件操作分为目录操作与文件操作两部分内容,实现对服务器硬盘中的文件及目录进行的各种操作功能。
3.文件操作分类
按照访问方式文件分为三类:
(1)顺序文件。
是按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。
(2)随机文件。
存储由多条固定长度记录组成的文件。
(3)二进制文件。
图形文件及文字处理程序等计算机程序都属于二进制文件。
4.文件名的表示方法
每个文件都用文件名进行标识,文件的完整名称由文件名和文件路径两部分组成,在JSP中文件名的标识方法与硬盘中不同,例如,E:
\JSP\index.jsp表示E盘JSP目录下的index.jsp文件。
而同样的文件及目录结构在JSP中使用的时候则要写成以下两种之一:
(1)第一种写法:
E:
/JSP/index.jsp
(2)第二种写法:
E:
\\JSP\\index.jsp
7.1.2Jsp文件操作的方法
JSP中的文件操作使用表7-1中的类完成。
表7-1文件操作常用类
类名
功能
File
File类的对象主要用来获取文件本身的一些信息。
InputStream
该抽象类是所有字节输入流的超类,它是能从各种输入源获取数据的类。
OutputStream
该抽象类是所有字节输出流的超类,它是决定往哪里输出的类。
FileInputStream
该类是从InputStream中派生出来的简单输入类,以字节为单位(非unicode)的流处理。
FileOutputStream
文件输出流操作。
该类用于向文件中写入一串字符。
BufferedInputStream
缓冲输入流,用于提高输入处理的效率。
BufferedOutputStream
缓冲输出流,用于提高输出处理的效率。
Reader
该抽象类是所有字符输入流的超类。
Writer
该抽象类是所有字符输出流的超类。
FileReader
该类是从Reader中派生出来的简单输入类。
该类的所有方法都是从
Reader类继承来的。
FileWriter
FileWriter提供了基本的文件写入作用。
BufferedReader
该类由Reader类扩展而来,提供通用的缓冲方式文本读取,是针对Reader的,不直接针对文件。
BufferedWriter
采用缓冲区,可以预读一些准备写入的数据,增加写入文件时的效率。
RandomAccessFile
创建一个指向该文件的RandomAccessFile流,对一个文件进行读写操作。
7.1.3File类详解
1.File类概述
该类不同于java.io.File类,在编写程序时应注意使用。
File类是文件和目录路径名的抽象表示形式。
主要用于保存单个上传文件的相关信息。
如上传文件的文件名、文件大小、文件数据等,不涉及对文件听读写操作。
此外,File还浏览子目录层次结构。
2.File类语法结构
File对象名=newFile(“绝对路径”);
与
File对象变量=newFile("绝对路径","文件名称");
第一种语法结构是建立文件目录的File对象;第二种语法结构是建立文件的File对象。
3.File类常用方法
表7-2File类常用方法
方法名
功能
getName()
获取文件的名字。
canRead()
判断文件是否是可读的。
canWrite()
判断文件是否可被写入。
exits()
判断文件是否存在。
length()
获取文件的长度(单位是字节)
getAbsolutePath()
获取文件的绝对路径。
getParent()
获取文件的父目录。
isFile()
判断文件是否是一个正常文件,而不是目录.
isDirectroy()
判断文件是否是一个目录。
isHidden()
判断文件是否是隐藏文件。
lastModified()
获取文件最后修改的时间(时间是从1970年午夜至文件最后修改时刻的毫秒数)。
7.2Jsp目录操作
文件存储在计算机的目录中,目录也称文件夹,欲应用JSP对文件进行操作,必须熟练掌握JSP对目录的操作。
JSP目录操作主要包括目录的建立、目录的删除两方面的内容。
本节将以实例方式详细讲解这两个方面的知识。
7.2.1Jsp建立目录
目录的建立是网上常用操作之一,在JSP中可以很轻松实现目录的创建。
JSP目录的创建通过File对象的mkdir()或mkdirs()方法实现。
1.语法格式:
File对象名=newFile(“绝对路径”);
对象名.mkdir();或者对象名.mkdirs();
2.操作举例
表7-3建立目录操作举例
实例
详解
01<%@pagelanguage="java"contentType="text/html"pageEncoding="gb2312"import="java.io.*"%>
02
03
04
05<%
06Stringpath=request.getRealPath("/");
07path=path+"\\class061";
08Filedir=newFile(path);
09dir.mkdir();
10%>
01设置字符编码为标准中文,引入输入输出类即IO类
02头部开始标记
03设置文件标题为“创建目录”
04头部结束标记
05JSP程序片开始
06获取服务器目录开始的绝对路径
07连接字符串
08创建File类的对象dir
09创建class061目录
10JSP程序片结束
7.2.2Jsp删除目录
与目录建立相对应的是目录的删除。
JSP目录的删除是通过File对象的delete方法完成。
删除目录前一般要用file对象的exists()对目录是否存在进行检测。
1.语法格式:
File对象名=newFile(“绝对路径”);
对象名.delete();
2.操作举例
表7-4删除目录操作实例
实例
详解
01<%@pagelanguage="java"contentType="text/html"pageEncoding="gb2312"import="java.io.*"%>
02
03
04
05<%
06Stringpath=request.getRealPath("/");
07path=path+"\\class061";
08Filedir=newFile(path);
09if(dir.exists()){
10dir.delete();
11out.println("目录删除成功!
");}
12else{
out.println("该目录不存在删除操作失败");}
14%>
01设置字符编码为标准中文,引入输入输出类即IO类
02头部开始标记
03设置文件标题为“删除目录”
04头部结束标记
05JSP程序片开始
06获取服务器目录开始的绝对路径
07连接字符串
08创建File类的对象dir
09判断class061目录是否存在
10目录存在执行删除操作
11输出提示信息:
目录删除成功!
12目录不存在输出提示信息:
该目录不存在删除操作失败。
14JSP程序片结束
7.3Jsp文件操作
文件的创建、删除、读取、写入构成了文件操作的四大内容。
JSP为这四项操作提供了相应的方法,可以十分便捷地完成对文件的所有操作。
7.3.1Jsp文件的建立
文件的建立要先建立文件File对象,然后调用File对象的CreateNewFile()方法实现文件的创建。
1.语法格式:
File对象名=newFile(“绝对路径”,“文件名”);
对象名.createNewFile();
2.操作举例
表7-5建立文件操作实例
实例
详解
01<%@pagelanguage="java"contentType="text/html"pageEncoding="gb2312"import="java.io.*"%>
02
03
04
05<%
06Stringpath=request.getRealPath("/");
07Filefile=newFile(path,"class061.txt");
08if(file.exists()){
out.println("该文件已存在!
");
}
09else{
file.createNewFile();out.println("文件创建成功");}
10%>
01设置字符编码为标准中文,引入输入输出类即IO类
02头部开始标记
03设置文件标题为“文件创建”
04头部结束标记
05JSP程序片开始
06获取服务器目录开始的绝对路径
07创建File类的对象file
08判断class061.txt文件是否存在文件存在输出提示信息:
该文件已存在
09文件不存在执行创建操作
输出提示信息:
文件创建成功!
10JSP程序片结束
7.3.2Jsp文件的删除
文件的删除要先建立File对象,再用File对象的delete()方法实现文件的删除。
1.语法格式:
File对象名=newFile(“绝对路径”,“文件名”);对象名.delete();
2.操作举例
表7-6删除文件操作实例
实例
详解
01<%@pagelanguage="java"contentType="text/html"pageEncoding="gb2312"import="java.io.*"%>
02
03
04
05<%
06Stringpath=request.getRealPath("/");
07Filefile=newFile(path,"class061.txt");
08if(file.exists()){
file.delete();
out.println("文件删除成功");}
09else{
out.println("该文件不存在,删除文件失败");}
10%>
01设置字符编码为标准中文,引入输入输出类即IO类
02头部开始标记
03设置文件标题为“文件删除”
04头部结束标记
05JSP程序片开始
06获取服务器目录开始的绝对路径
07创建File类的对象file
08判断class061.txt文件是否存在文件存在执行删除操作
输出提示信息:
文件删除成功!
09文件不存在输出提示信息:
该文件不存在,删除文件失败
10JSP程序片结束
7.3.3Jsp文件的读取
文件的读取有两种方法:
使用类FileInputStream读文件(字节流读文件)和使用类FileReader读文件(字符流读文件)。
文件的读取要先建立File对象,再用File对象的FileInputStream读文件或FileReader读文件实现文件的读取。
1.语法格式:
表7-7文件读取语法格式
FileInputStream对象名=newFileInputStream(“绝对路径”或“文件名”);
对象名.read();
从该输入流中读取一个数据字节
对象名.read(byte[]b);
从该输入流中将最多b.length个字节的数据读入一个字数组中
对象名.read(byte[]b,intoff,intlen);
从该输入流中将最多len个字节的数据读入一上字节数组中
对象名.skip(longn);
从输入流中跳过并丢弃n个字节的数据
对象名.close();
关闭此文件输入流并释放与该流有关的所有系统资源
或
FileReader对象名=newFileReader(“绝对路径”或“文件名”);
对象名.read();
读取单个字符
对象名.read(char[]cbuf,intoffset,intlength);
将字符读入数组中的某一部分
对象名.close();
关闭该流
2.操作举例
表7-8文件读取实例
实例
详解
01<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.io.*"%>
02
03
04
05
06<%
07Filefile=newFile(path,"\\new.txt");
Stringpath=request.getRealPath("/");
08byteby[]=newbyte[(int)file.length()];
09intb;
10try{
FileInputStreamfis=newFileInputStream(file);
while((b=fis.read(by,0,by.length))!
=-1){
Strings=newString(by,0,b);
out.println(s);
}
11fis.close();}
12catch(IOExceptione){
out.println("文件读取错误!
");}
13%>
14
15