07第7章 Jsp文件操作10Word格式.docx
《07第7章 Jsp文件操作10Word格式.docx》由会员分享,可在线阅读,更多相关《07第7章 Jsp文件操作10Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
按照访问方式文件分为三类:
(1)顺序文件。
是按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。
(2)随机文件。
存储由多条固定长度记录组成的文件。
(3)二进制文件。
图形文件及文字处理程序等计算机程序都属于二进制文件。
4.文件名的表示方法
每个文件都用文件名进行标识,文件的完整名称由文件名和文件路径两部分组成,在JSP中文件名的标识方法与硬盘中不同,例如,E:
\JSP\index.jsp表示E盘JSP目录下的index.jsp文件。
而同样的文件及目录结构在JSP中使用的时候则要写成以下两种之一:
(1)第一种写法:
E:
/JSP/index.jsp
(2)第二种写法:
\\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.语法格式:
对象名.mkdir();
或者对象名.mkdirs();
2.操作举例
表7-3建立目录操作举例
实例
详解
01<
%@pagelanguage="
java"
contentType="
text/html"
pageEncoding="
gb2312"
import="
java.io.*"
%>
02<
head>
03<
title>
创建目录<
/title>
04<
/head>
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()对目录是否存在进行检测。
对象名.delete();
表7-4删除目录操作实例
%>
删除目录<
09if(dir.exists()){
10dir.delete();
11out.println("
目录删除成功!
"
}
12else{
out.println("
该目录不存在删除操作失败"
}
14%>
03设置文件标题为“删除目录”
09判断class061目录是否存在
10目录存在执行删除操作
11输出提示信息:
目录删除成功!
12目录不存在输出提示信息:
该目录不存在删除操作失败。
14JSP程序片结束
7.3Jsp文件操作
文件的创建、删除、读取、写入构成了文件操作的四大内容。
JSP为这四项操作提供了相应的方法,可以十分便捷地完成对文件的所有操作。
7.3.1Jsp文件的建立
文件的建立要先建立文件File对象,然后调用File对象的CreateNewFile()方法实现文件的创建。
File对象名=newFile(“绝对路径”,“文件名”);
对象名.createNewFile();
表7-5建立文件操作实例
contentType="
文件创建<
07Filefile=newFile(path,"
class061.txt"
08if(file.exists()){
该文件已存在!
09else{
file.createNewFile();
文件创建成功"
03设置文件标题为“文件创建”
06获取服务器目录开始的绝对路径
07创建File类的对象file
08判断class061.txt文件是否存在文件存在输出提示信息:
该文件已存在
09文件不存在执行创建操作
输出提示信息:
文件创建成功!
7.3.2Jsp文件的删除
文件的删除要先建立File对象,再用File对象的delete()方法实现文件的删除。
对象名.delete();
表7-6删除文件操作实例
文件删除<
file.delete();
文件删除成功"
该文件不存在,删除文件失败"
01设置字符编码为标准中文,引入输入输出类即IO类
03设置文件标题为“文件删除”
08判断class061.txt文件是否存在文件存在执行删除操作
输出提示信息:
文件删除成功!
09文件不存在输出提示信息:
该文件不存在,删除文件失败
7.3.3Jsp文件的读取
文件的读取有两种方法:
使用类FileInputStream读文件(字节流读文件)和使用类FileReader读文件(字符流读文件)。
文件的读取要先建立File对象,再用File对象的FileInputStream读文件或FileReader读文件实现文件的读取。
表7-7文件读取语法格式
FileInputStream对象名=newFileInputStream(“绝对路径”或“文件名”);
对象名.read();
从该输入流中读取一个数据字节
对象名.read(byte[]b);
从该输入流中将最多b.length个字节的数据读入一个字数组中
对象名.read(byte[]b,intoff,intlen);
从该输入流中将最多len个字节的数据读入一上字节数组中
对象名.skip(longn);
从输入流中跳过并丢弃n个字节的数据
对象名.close();
关闭此文件输入流并释放与该流有关的所有系统资源
或
FileReader对象名=newFileReader(“绝对路径”或“文件名”);
读取单个字符
对象名.read(char[]cbuf,intoffset,intlength);
将字符读入数组中的某一部分
关闭该流
表7-8文件读取实例
%@pagecontentType="
text/html;
charset=gb2312"
language="
读文件内容<
body>
06<
%
\\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){
文件读取错误!
13%>
14<
/body>
15<
/html>
01设置字符编码为标准中文并引入输入输出类即IO类
03设置文件标题为“读文件内容”
05体部开始
06JSP程序片开始
07获取服务器目录开始的绝对路径,创建File类的对象file
08存储文件的长度
09定义变量b,用于存储字符长度
10捕抓异常判断new.txt文件是否存在文件存在执行读文件操作
输出文件中的内容,如:
读文件成功!
11关闭文件
12文件不存在输出异常错误:
13JSP程序片结束
14体部结束
15html代码结束
表7-9文件读取实例
html>
07Stringpath=request.getRealPath("
08FileReaderfr=newFileReader(path+"
09intc=fr.read();
10while(c!
11out.print((char)c);
12c=fr.read();
13if(c==13){
14out.print("
<
br/>
15fr.skip
(1);
16c=fr.read();
}}
17fr.close();
18%>
19<
01设置字符编码为标准中文并引入输入输出类即IO类
02html代码开始
03头部开始标记
04设置文件标题为“读文件内容”
05头部结束标记
07取得目前当录在服务器端的实际位置
08建立FileReader变量,并设定由fr变量引用
09从文件中读取一个字符
10判断是否已读到文件的结尾
11输出读取到的数据
12从文件中读取数据
13判断是否为断行字符
14输出分行标签
15略过一个字符
16读取一个字符
17关闭文件
18JSP程序片结束
19html结束
7.3.4Jsp文件的写入
文件的写入有两种方法:
使用类FileOutputStream写文件(字节流写文件)和使用类FileWriter写文件(字符流写文件)。
文件的写入要先建立File对象,再用File对象的FileOutputStream写文件或FileWriter写文件实现文件的读取。
对象名.write(byte[]b);
将b.length个字节从指定字节数组写入该文件输出流中
对象名.write(byte[]b,intoff,intlen);
将指定字节数组中从偏移量off开始的len个字节写入该文件输出流
对象名.write(intb);
将指定字节写入该文件输出流
对象名.write(intc);
写入单个字符
对象名.write(char[]cbuf,intoff,intlen);
写入字符数组的某一部分
对象名.write(Stringstr,intoff,intlen);
写入字符串的某一部分
表7-10文件写入操作实例
文件的写入<
08Filefile=newFile(path,"
Stringstr="
文件写入数据成功!
byteb[]=str.getBytes();
try{
FileOutputStreamfos=newFileOutputStream(file,true);
fos.write(b);
09out.println("
数据写入成功!
10fos.close();
11catch(IOExceptione){
文件写入错误!
12%>
13<
02头部开始标记
03设置文件标题为“文件的写入”
04头部结束标记
05体部开始
07获取服务器目录开始的绝对路径
08创建File类的对象file异常判断new.txt文件是否存在文件存在执行写入文件操作
09输出提示信息:
数据写入成功!
10关闭文件
11文件不存在输出提示信息:
12JSP程序片结束
13体部结束
14html代码结束
2-2
文件的写操作<
08FileWriterfw=newFileWriter(path+"
09fw.write("
您们好!
欢迎各位的光临!
10out.print("
文件的写入操作成功!
11fw.close();
04设置文件标题为“文件的写操作”
07获取服务器目录开始的绝对路径
08创建FileWriter类的对象fw.
09将字符串写入文件
10输出字符串“文件的写入操作成功!
”
13html代码结束
7.3.5Jsp