一、readfile.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%
String file = null;
file = request.getParameter("file");
if (file == null || file.equals("")) {//
file = "D:\\Java\\namol.txt"; //初始化file,如果空,给出默认文件 nomal.txt
} else {
file = new String(file.getBytes("ISO8859_1"), "GBK");
}
out.print(file + "<br/>");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'readtxt.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<jsp:useBean id="reader" class="test.ReadFile" />
<%
//使用javaBean,这是当前文件路径
reader.setFile(file);
%>
</head>
<body>
读取txt文件内容
<textarea cols="80" rows="20" name="filecontent">.
<%=reader.readtxt()%>
</textarea>
<br />
<a href="index2.jsp">back</a> a href="#"
οnclick="history.go(-1)">back/a
</body>
</html>
二、javaBean:ReadFile.java
/**
*
*/
package test;
import java.io.*;
import java.util.*;
public class ReadFile
{
private String file;
private StringTokenizer token;
//token 对象将以行文本按照分隔符分割成多个字符串???
public ReadFile()
{
file = "D:\\Java\\namol.txt";//null; //需要读取文件的完整路径,例如:file=D:\Java\说明.txt
}
public void setFile(String strfilename)
{
this.file = strfilename;
}
public String getFile()
{
return this.file;
}
public StringBuffer readtxt(){//主要方法读文件内容
StringBuffer filecontent = new StringBuffer("");
//filecontent.append(this.file);
String strtemp = null;
try
{
BufferedReader f = new BufferedReader(new FileReader(this.file));
strtemp = f.readLine();
//String[] strtemps = null;
while(strtemp!=null)
{
//token = new StringTokenizer(strtemp);
//strtemps = strtemp.split("");
//for(int i=0;i<strtemps.length;i++)
// filecontent.append(strtemps[i] + "\n");
filecontent.append(strtemp);
filecontent.append("\n");
strtemp = f.readLine();
}
f.close();
}catch(FileNotFoundException e){filecontent.append("readtxt() Err:File Not Found");}
catch(IOException ex){filecontent.append("readtxt() Err:IOException");}
return filecontent;
}
}
注意:BufferWriter.readLine()
读取一个文本行。
通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
思考:reader.readtxt()是读出文件内容显示到文本框中,可以直接写到页面?遇到一些特殊字符怎么处理?
http://hi.baidu.com/aaa888/item/99a750284d872784af48f593