jsp操作文件
jsp操作文件:读取文件和写入文件,下面分别介绍一.读取文件,二.写入文件

一。读取文件
1。使用ServletContext,只能读取Servlet上下文中的文件。
2。java.io.FileReader对象,可以读取任何位置的文件。
下面我们介绍两种方式的编码:

1。使用ServletContext,只能读取Servlet上下文中的文件。
在ServletContext接口中定义了java.io.InputStream ,getsourceAsStream(java.lang.String path)来访问给定的资源。使用了InputStream对象后对字符要进行重新编码。请看下面的readFile.jsp文件。



readFile.jsp
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>

<%
try
{
//使用ServletContext装入文件资源
InputStream in=getServletContext().getResourceAsStream(
"/file.txt");//获取给定的资源
String file=
"";
int temp=0;
while((temp=in.read())!=-1)
{
file+=(char)temp;
}
//关闭输入流。
in.close();
out.println(new String(file.getBytes(
"iso-8859-1"))); //重新编码
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
<------------------------->
为提高速度,减少占用资源,避免出现中文问题,我们使用带缓冲的输入流来读取文件资源。让我们来看readFile2.jsp文件


readFile2.jsp
<%@ page contentType=
"text/html; charset=gb2312" import="java.io.*" buffer="64kb"%>
<%
try
{
InputStream in=getServletContext().getResourceAsStream(
"/file.txt");
String file=
"";
String temp=
"";

BufferedReader buffer=new BufferedReader(new InputStreamReader(new BufferedInputStream(in)));
while((temp=buffer.readLine())!=null)
{
file+=temp;
}
buffer.close();
in.close();
out.println(file);
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>


-------------------------------------------------------------------------------------------------
2。使用java.io.FileReader对象,可以读取任何位置的文件。

<%@ page contentType=
"text/html; charset=gb2312" import="java.io.*" buffer="64kb"%>
<%
try
{
BufferedReader in=new BufferedReader(new FileReader(
"c:\\UserSession.java"));
String file=
"";
String temp=
"";
while((temp=in.readLine())!=null)
{
file+=temp;
}
in.close();
out.println(file);
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>




二.写入文件
1。使用java.io.FileReader对象
2。使用FileOutputStream
下面让我们来看代码:
<%@ page contentType=
"text/html; charset=gb2312" import="java.io.*"%>
<html>
<body>
<%
request.setCharacterEncoding(
"gb2312");
String content=request.getParameter(
"content");
%>
<%
try
{
PrintWriter wt= new PrintWriter(new BufferedWriter(new FileWriter(
"c:\\foo.out",true)));
//PrintWriter wt= new PrintWriter(new FileOutputStream("c:\\foo.out",true));
wt.write(content);
wt.close();
out.println(
"已经把内容写入到c:\\foo.out");
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
<form action=
"writeFile.jsp" method=post>
<textarea name=content cols=20 rows=5></textarea><br>
<input type=submit value=提交>
</form>
</body>
</html>



air_tuyh   2005-10-09 18:52:49 评论:0   阅读:2064   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2008 powered by YuLog