关于文件操作讨论的已经很多了,让我们来看看jsp中是如何实现的。
这里用到了两个文件,一个jsp文件一个javabean文件,通过jsp中调用javabean可以轻松读取文本文件,注意请放置一个文本文件afile.txt到web根目录的test目录下,javabean文件编译后将class文件放到对应的class目录下(tomcat环境)。
Read.jsp
$#@60;html$#@62; $#@60;head$#@62; $#@60;title$#@62;读取一个文件$#@60;/title$#@62; $#@60;/head$#@62; $#@60;body
bgcolor="#000000"$#@62; $#@60;%--调用javabean --%$#@62; $#@60;jsp:useBean
id="reader" class="DelimitedDataFile"
scope="request"$#@62; $#@60;jsp:setProperty name="reader" property="path"
value="/test/afile.txt" /$#@62; $#@60;/jsp:useBean$#@62;
$#@60;h3$#@62;文件内容:$#@60;/h3$#@62;
$#@60;p$#@62;
$#@60;% int count = 0; %$#@62; $#@60;% while (reader.nextRecord() != -1)
{ %$#@62; $#@60;% count++; %$#@62; $#@60;b$#@62;第$#@60;%
out.print(count); %$#@62;行:$#@60;/b$#@62; $#@60;%
out.print(reader.returnRecord()); %$#@62;$#@60;br$#@62; $#@60;% } %$#@62;
$#@60;/p$#@62; $#@60;/body$#@62; $#@60;/html$#@62;
//DelimitedDataFile.java bean文件源代码 //导入java包 import java.io.*; import java.util.StringTokenizer;
public class DelimitedDataFile {
private String currentRecord =
null; private BufferedReader file; private String path; private
StringTokenizer token; //创建文件对象 public DelimitedDataFile() {
file = new BufferedReader(new InputStreamReader(System.in),1); }
public DelimitedDataFile(String filePath) throws
FileNotFoundException { path = filePath; file = new
BufferedReader(new FileReader(path)); } //设置文件路径 public void
setPath(String filePath) { ath =
filePath; try { file = new BufferedReader(new FileReader(path)); }
catch (FileNotFoundException e) { System.out.println("file not
found"); } } //得到文件路径 public
String getPath() { return path; } //关闭文件 public void
fileClose() throws IOException { file.close(); }
//读取下一行记录,若没有则返回-1 public int nextRecord() {
int returnInt = -1; try { currentRecord =
file.readLine(); } catch (IOException e)
{ System.out.println("readLine problem, terminating."); }
if (currentRecord == null) returnInt = -1;
else { token = new StringTokenizer(currentRecord);
returnInt = token.countTokens(); } return returnInt; }
//以字符串的形式返回整个记录 public String returnRecord() {
return
currentRecord; } }
为了对文件操作有全面了解,请看下一篇$#@60;$#@60;jsp文件操作之写入篇$#@62;$#@62;。
|