为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > JSP读取文件

JSP读取文件

2012-05-19 4页 doc 58KB 87阅读

用户头像

is_054236

暂无简介

举报
JSP读取文件读取文件内容(图) www.diybl.com    时间 : 2010-08-04  作者:网络   编辑:huyang629 点击:  40 [ 评论 ] 在读取文件时,可以有两种选择方式,一种是通过ServletContext读取,另一种是直接使用java.io.FileReader 等对象。前者只能读取Servlet上下文中的文件,后者可以读取任何位置的文件。 1.使用ServletContext 这种方式只能获得Servlet上下文之内的资源,如例程10-31所示。 例程10-31  使用ServletConte...
JSP读取文件
读取文件内容(图) www.diybl.com    时间 : 2010-08-04  作者:网络   编辑:huyang629 点击:  40 [ 评论 ] 在读取文件时,可以有两种选择方式,一种是通过ServletContext读取,另一种是直接使用java.io.FileReader 等对象。前者只能读取Servlet上下文中的文件,后者可以读取任何位置的文件。 1.使用ServletContext 这种方式只能获得Servlet上下文之内的资源,如例程10-31所示。 例程10-31  使用ServletContext读取文件(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(); } %> 在ServletContext接口中,定义了一个java.io.InputStream getResourceAsStream (java.lang. String path)方法来访问给定的资源。这里的path参数必须以“/”开始。 这个方法和java.lang.Class.getResourceAsStream方法不同,后者使用ClassLoader获得指定的资源。 一旦获得了InputStream,我们就可以通过这个输入流读取资源。执行的结果如图10-18所示。 498)this.style.width=498;"> 图10-18  读取文件的内容 在例程10-26中,由于使用了InputStream对象,如果在读取后不对字符进行重新编码,那么对中文将出现乱码的问题。而且没有使用缓冲的输入流,它的效率较低。下面我们使用带缓冲的输入流读取文件资源,如例程10-32所示。 例程10-32  使用带缓冲的输入流(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(); } %> 这种方式不仅速度快,占用系统资源少,而且不会出现中文乱码问题。 读者也许会问,如果文件资源不在Servlet上下文环境中,那么怎么办?可以使用Java IO系统读取文件的类。 2.使用FileReader 可以在JSP页面中使用FileReader和FileInputStream等类读取文件的内容。由于FileReader具有比FileInputStream更好的性能,在这里使用FileReader读取文件的内容,如例程10-33所示。 例程10-33  使用FileReader读取文件(readFile3.jsp) <%@ 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(); } %> 在例程10-33中,使用一个BufferedReader封装FileReader,这样就可以每次读取一行数据。 把一个UserSession.java文件复制到C盘根目录下,或者更改new FileReader ("c:\\UserSession.java")中的路径,在浏览器里输入http://127.0.0.1:8080/ch10/readFile3.jsp。可以看出,readFile3.jsp读取了指定的文件,并且把这个文件显示在浏览器里。
/
本文档为【JSP读取文件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索