五 JSP 中的文件操作

JSP 中的文件操作

数据流

流,是一个生产或消费信息的逻辑实体,其通过输入/输出系统和物理设备相连,虽然连接的物理设备不尽相同,但流的工作方式是相同的。

数据流,分为字节流和字符流。

字节流,处理单元为 1 个字节,定义了 InputStream 和 OutputStream 顶层抽象类。

字符流,处理单元为 2 个字节的 Unicode 字符,定义了 Reader 和 Writer 顶层抽象类。

File 类

如果要处理文件系统中文件的诸如权限、创建时间、所在路径等相关文件本身的属性,可以使用 File 类。即,该类并不会指定信息怎样从文件中读取或如何存储到文件中,而只是描述文件本身的属性。

在 JSP 中使用该类,导入相应的类库即可:<%@ page import="java.io.*" %>

如下代码,简单的判断文件夹 text 是否存在,如果存在就删除,否则就创建。

<%
String path = request.getServletContext().getRealPath("/");
path = path + "text";
File d = new File(path);

if (d.exists()) {
	d.delete();
	out.println("delete file text");
}else {
	d.mkdir();
	out.println("directory create "+d.getAbsolutePath());
}
%>

如果要读写文件,可以使用 FileReader 和 FileWriter 类,创建实例对象时,可以提供一个文件的路径,也可以提供一个 File 实例对象。

在 JSP 中可以直接获取需要的字节流或字符流。

<%
request.getReader();
request.getInputStream();
response.getWriter();
response.getOutputStream();
%>

文件上传及下载

在使用 form 表单进行文件的上传及下载时,使用的是字节流。

<form action="upload.jsp" method="post" enctype="multipart/form-data">
<input type="file" size="30" />
<input type="submit" value="开始上传"/>
</form>

上传的过程是从 request 中获取字节输入流,读取上传的数据,而后创建文件输出流(FileOutputStream),将读取的数据写到指定位置。

下载的过程是创建文件输入流(FileInputStream)读取指定文件的数据,而后将其写入通过 response 获取的字节输出流中。

也可以使用 jspSmartUpload 包来实现文件的上传及下载,可参见博文

对于大文件或多文件上传,可以使用 Commons-FileUpload 组件,可以去官网下载相应的 commons-fileupload.jarcommons-io.jar 包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值