⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readfilebyline.jsp

📁 黑魔方JSP基础教程源代码(耿祥义编著)是这里有课件和jsp源代码
💻 JSP
字号:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import ="java.io.*" %>
<%! //对字符串进行回压流处理的方法: 
   public String getString(String content)
   {
    try{  
         StringReader in=new StringReader(content) ;//指向字符串的字符流。
          PushbackReader push=new PushbackReader(in); //回压流
          StringBuffer stringbuffer=new StringBuffer(); //缓冲字符串对象。
          int c; 
          char b[]=new char[1];              
          while ( (c=push.read(b,0,1))!=-1)//读取1个字符放入字符数组b。 
            {
              String s=new String(b);
              if(s.equals("<"))        //回压的条件  
               { 
                  push.unread('&');
                  push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
                  stringbuffer.append(new String(b));
                  push.unread('L');
                  push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
                  stringbuffer.append(new String(b));
                  push.unread('T');
                  push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
                  stringbuffer.append(new String(b));
                }
              else if(s.equals(">"))        //回压的条件  
               {  
                  push.unread('&');
                  push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
                  stringbuffer.append(new String(b));
                  push.unread('G');
                  push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
                  stringbuffer.append(new String(b));
                  push.unread('T');
                  push.read(b,0,1); //push读出被回压的字符字节,放入数组b.
                  stringbuffer.append(new String(b));
               }
              else if(s.equals("\n"))  
               {  
                  stringbuffer.append("<BR>");
               }
              else
               {
                  stringbuffer.append(s);
               }
            }
          push.close();
          in.close();
          return new String(stringbuffer); //返回处理后的字符串。
      }
    catch(IOException e)
      {
          return content=new String("不能读取内容");
      } 
 }
%>
<% 
     String s=request.getParameter("g"); //获取客户提交的信息(是否重新读取文件)
         if(s==null)
            {s=""; }
     byte b[]=s.getBytes("ISO-8859-1");
     s=new String(b);
     File f=null;
     FileReader in=null;
     BufferedReader buffer=null;
     if(s.equals("重新读取文件"))   //当请求重头读取文件时,建立和文件的输入流连接。
      { 
         f=new File("f:/8000","Example.java");
         in=new FileReader(f);
         buffer=new BufferedReader(in);
         session.setAttribute("file",f);  
         session.setAttribute("in",in);
         session.setAttribute("buffer",buffer);
      }
      //将上述对象保存到用户的session 对象中:
   try{ 
        String str=null;  int i=1;
        f=(File)session.getAttribute("file");
        in=(FileReader)session.getAttribute("in");
        buffer=(BufferedReader)session.getAttribute("buffer");
        while( ((i<=5)&&(str=buffer.readLine())!=null))
            { //为了能显示原始的HTML文件或JSP文件需使用回压流技术。
              str=getString(str);
              out.print("<Font size=2><BR>"+str+"</Font>");
               i++;
            }
      }
   catch(Exception e)
      { 
        out.print("读取出现问题,请单击重新读取按钮"+e);
      }
%>
<%String code=response.encodeURL("readFileByLine.jsp");
%>
<HTML>
<BODY>
 <P><BR>点击按钮读取下5行:
 <FORM action="<%=code%>" method="post" name=form>
    <Input type=submit value="读取文件的下5行">
 </FORM>  
 <P><BR>点击按钮读重新读取文件:
<FORM action="" method="post" name=form>
    <Input type=submit name="g" value="重新读取文件">
 </FORM>  
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -