|
jsp中的文件操作基本上可以分为读取和写入,首先讲的是读取,有两种典型的方法,一种是通过servletcontext读取,另一种是直接使用java.io.FileReader,区别在于,前者只能读取servlet上下文中的文件,后者则可以读取任意地方的文件。
1,使用servletcontext, <%@ page language="java" contentType="text/html; charset=gb2312"%> <%@page import="java.io.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> </head> <body> <% try{ InputStream in=this.getServletContext().getResourceAsStream("/file.txt"); String file=""; int temp=0; while((temp=in.read())!=-1) { file+=(char)temp; } in.close(); out.println("the content of /file.txt:"); out.println(new String(file.getBytes("iso-8859-1"),"gb2312")); out.flush(); } catch(Exception e){ e.printStackTrace(); }
%>
</body> </html>
这里基本上实现了读取功能,但是,没有才有缓冲机制,效率低下,
<%@ page language="java" contentType="text/html; charset=gb2312" buffer="64kb"%> <%@page import="java.io.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> </head> <body> <% try{ InputStream in=this.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("the content of /file.txt:"); out.print(file); //out.println(new String(file.getBytes("iso-8859-1"),"gb2312")); out.flush(); } catch(Exception e){ e.printStackTrace(); }
%>
</body> </html>
2,使用FileReader
在jsp页面中使用fileReader和FileinputStream读取文件的内容,由于filereader的效率要好一些,我们这里使用filereader读取。 <%@ page language="java" contentType="text/html; charset=gb2312" buffer="64kb"%> <%@page import="java.io.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> </head> <body> <% try{ String file=""; String temp=""; BufferedReader buffer=new BufferedReader(new FileReader("c:\\read.txt")); while((temp=buffer.readLine())!=null) { file+=temp; } buffer.close(); out.println("the content of /file.txt:"); out.print(file); //out.println(new String(file.getBytes("iso-8859-1"),"gb2312")); out.flush(); } catch(Exception e){ e.printStackTrace(); }
%>
</body> </html>
3.写文件
<%@ page language="java" contentType="text/html; charset=gb2312" buffer="64kb"%> <%@page import="java.io.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> </head> <body> <% request.setCharacterEncoding("gb2312"); String content=request.getParameter("content");
%> <% try{ //增加“true”关键字,表示新写入的内容追加到末尾,而不是覆盖,不加的话就覆盖了。 PrintWriter writer=new PrintWriter(new BufferedWriter(new FileWriter("c:\\read.txt",true))); writer.write(content); writer.close(); out.println("write success"); } catch(Exception e){ e.printStackTrace(); }
%> <form action="writetest.jsp" method=post> <textarea name=content cols=20 rows=5></textarea><br> <input type=submit value="submit"> </form>
</body> </html>
|
一共有 0 条评论