JSP文件操作之读取篇

网络整理 - 07-27
    文件操作是网站编程的重要内容之一,asp关于文件操作讨论的已经很多了,让我们来看看jsp中是如何实现的。 
  这里用到了两个文件,一个jsp文件一个javabean文件,通过jsp中调用javabean可以轻松读取文本文件,注意请放置一个文本文件afile.txt到web根目录的test目录下,javabean文件编译后将class文件放到对应的class目录下(tomcat环境)。 
Read.jsp 

<html> 
<head> 
<title>读取一个文件</title> 
</head> 
<body bgcolor="#000000"> 
<%--调用javabean --%> 
<jsp:useBean id="reader" class="DelimitedDataFile" scope="request"> 
<jsp:setProperty name="reader" property="path" value="/test/afile.txt" /> 
</jsp:useBean> 

<h3>文件内容:</h3> 

<p> 
<% int count = 0; %> 
<% while (reader.nextRecord() != -1) { %> 
<% count++; %> 
<b>第<% out.print(count); %>行:</b> 
<% out.print(reader.returnRecord()); %><br>     
<% } %> 
</p> 
</body> 
</html> 

//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) 
        { 
             
            path = 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; 

}