文件操作是网站
编程的重要内容之一
,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; 
  
} 
  
}