<%@ page import="java.io.*,java.lang.*"%>
<html>
<head>
<title>分页读取文件内容</title>
</head>
<body>
<p align="center">分页读取文件内容,文件内容为:<br>
</p>
<p>
<%
  String pages=request.getParameter("page");
  if(pages==null)
  {
  pages="0";
  }
  int dipage=Integer.parseInt(pages);
%>
<%//从文件中读取数据
  int pageFileSize=20;//每页20行数据
  int fileLineCount=0;//文件总行数
  int fileCountPage=0;//文件页数
  File file=new File("**********");//数据所在路径  //获得文件的总行数
  if(file.exists())
  {
  FileReader fr=new FileReader(file);
  BufferedReader buffer=new BufferedReader(fr);
  String tempstr=null;
  while((tempstr=buffer.readLine())!=null)
  {
  fileLineCount++;
  }
  buffer.close();
  fr.close();
  }
  //获得文件页数
  if(fileLineCount%pageFileSize==0)
     fileCountPage=fileLineCount/pageFileSize;
  else
     fileCountPage=fileLineCount/pageFileSize+1;
  //读取当前页的数据
  if(file.exists())
  {
  try{
  FileReader fr=new FileReader(file);
  BufferedReader  buffer=new BufferedReader(fr);
  String tempstr=null;
  for(int i=0;i<dipage*pageFileSize;i++)
  buffer.readLine();  //这个循环的作用是定位文件指针到要输出当前数据的位置上
  for(int i=0;i<pageFileSize&&(tempstr=buffer.readLine())!=null;i++)
  out.println(tempstr+"<br>");   buffer.close();
  fr.close();
  }catch(IOException ioe)
  {
  out.println("出现异常:"+ioe);
  }
  }
  else
  {
  out.println("文件中暂时没有内容!");
  }
%>
</p>
<p align="center">  <%if(dipage>0)
  {%>
    <a href="fenye.jsp?page=<%=dipage-1%>">上一页</a>
  <%}%>  <%if(dipage<fileCountPage)
  {%>
    <a href="fenye.jsp?page=<%=dipage+1%>">下一页</a>
  <%}%>   共<%=fileCountPage%>页,当前第<%=dipage+1%>页
</p>
</body>
</html>