zoukankan      html  css  js  c++  java
  • JSP操作文件

    JSP操作文件包括读取文件内容和往文件写入内容;

    一、读取文件有两种方式:一种通过ServletContext读取;一种直接使用java.io.FileReader

    1、使用ServletContext——只能获取Servlet上下文的资源,如:

    <%@page contentType="text/html;cahrset=gb2312" import="java.io.*"%>
    <%
    try{
     InputStreamt in=getServletContext().getResourceAsStream("/file.txt");
     String file = "";
     int temp=0;
    while((temp=in.read()!=-1)){
     file+=(char)temp;
    }
    in.close();
    out.flush();
    }catch(Exception e){
     e.printStackTrace();
    }
    %>

    上述方法的path参数必须以“/”开头;在读取后需要对字符进行编码,否则出现乱码;由于没有使用缓冲的输入流,效率比较低。
    下面使用缓冲输入流:

    <%@page contentType="text/html;cahrset=gb2312" import="java.io.*"%>
    <%
    try{
     InputStreamt in=getServletContext().getResourceAsStream("/file.txt");
     String file = "";
     String temp=0;
    
     BufferedReader buffer = new BufferedReader(new InputStreamReader(new BufferedInputStream(in)));
    while((temp=buffer.readLine()!=null)){
     file+=temp;
    }
    buffer.close();
    in.close();
    out.flush();
    }catch(Exception e){
     e.printStackTrace();
    }
    %>

    2、使用FileReader——读取任意路径的文件

    <%@page contentType="text/html;cahrset=gb2312" import="java.io.*"%>
    <%
    try{
     BufferedReader in= new BufferedReader (new FileReader("c:\\UserSession.java"));
     String file = "";
     String temp=0;
    
    while((temp=in.readLine()!=null)){
     file+=temp;
    }
    in.close();
    out.flush();
    }catch(Exception e){
     e.printStackTrace();
    }
    %>

     二、写入内容到文件

    通过FileWrite对象或者FileOupStream。如:

    <%@page contentType="text/html;cahrset=gb2312" import="java.io.*"%>
    <html>
    <body>
    <%
    request.setCharaterEncoding("gb2312");
    String content = request.getParameter("content");
    %>
    <%
    try{
     PrintWrite out = new PrintWrite (new BufferedWrite(new FileWrite("c:\\UserSession.java")));
     write.write(content);
    write.close();
    }catch(Exception e){
     e.printStackTrace();
    }
    %>
    <form action="writeFile.jsp" method=post>
    <textarea name=content cols=20 rows=5></textarea><br>
    <input type=submit value= submit>
    </form>
    </body>
    </html>

    这里每次写入内容都将删除原有内容,要保存原有内容只要修改:BufferedWrite(new FileWrite("c:\\UserSession.java",true))

  • 相关阅读:
    Aurora 数据库支持多达五个跨区域只读副本
    Amazon RDS 的 Oracle 只读副本
    Amazon EC2 密钥对
    DynamoDB 读取请求单位和写入请求单位
    使用 EBS 优化的实例或 10 Gb 网络实例
    启动 LAMP 堆栈 Web 应用程序
    AWS 中的错误重试和指数退避 Error Retries and Exponential Backoff in AWS
    使用 Amazon S3 阻止公有访问
    路由表 Router Table
    使用MySQLAdmin工具查看QPS
  • 原文地址:https://www.cnblogs.com/zhangchunxi/p/3019729.html
Copyright © 2011-2022 走看看