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>   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值