`
jiangduxi
  • 浏览: 456596 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JSP操作文件

阅读更多
  由于JSP能使用Java的IO系统,所以在JSP中对文件的操作和一般Java程序没有什么大的区别。
  操作文件主要有两种类型,一种是读取内容,另一种是写入内容或者更改文件的属性。

1. 读取文件的内容
   在读取文件的时,可以有两种选择方式,一种是通过ServletContext读取,另一种是直接使用java.io.FileReader等对象。前者只能读取Servlet上下文中的文件,后者可以读取任何位置的文件。

1. 使用ServletContext
    这种方式只能获得Servlet上下文之内的资源。例如
使用ServletContext读取文件(readFile.jsp)
  <%@ page contentType="text/html;charset=gb2312" import="java.io.*"%>
  <%
    try{

            //使用ServletContext装入文件资源
             InputStream in = getServletContext().getResourceAsStream("/file.txt");
           String file = "";
           int temp = 0;
           while( (temp = in.read()) != -1)
           {
             file +=(char)temp;
             }
           //关闭输入流
            in.close();
          out.println(new String(file.getBytes("iso-8859-1")));
          out.flush();
       }
    catch(Exception e){
        
          out.println(e);
          e.printStackTrace();
      }
   %>

在ServletContext接口中,定义一个java.io.InputStream getResourceAsStream(java.lang.String path)方法来访问给定的资源。这里的path参数必须以"/"开始。
这个方法和Java.lang.Class.getResourceAsStream方法不同,后者使用ClassLoader获得指定的资源。
在上面的代码中使用InputStream对象,如果在读取后不对字符进行重新编码,那么对中文讲出现乱码的问题。而且没有使用缓冲的输入流,它的效率较低。
下面看看使用带缓冲的输入流读取文件资源
   <%@ page contentType="text/html;charset=gb2312" import="java.io.*"%>
  <%
    try{

            //使用ServletContext装入文件资源
             InputStream in = getServletContext().getResourceAsStream("/file.txt");
           String file = "";
           int temp = "";

           BufferedReader buffer = new BufferReader( new InputStreamReader(new BufferedInputStream(in)));
           while( (temp = buffer.readLine()) != null)
           {
             file += temp;
             }
           buffer.close();
            in.close();
          out.println(file);
          out.flush();
       }
    catch(Exception e){
        
          out.println(e);
          e.printStackTrace();
      }
   %>

以这种方式不仅速度快,占用系统资源少,而且不会出现中文乱码问题。

2 使用FileReader
    可以在JSP页面中使用FileReader和FileInputStream等类读取文件的内容。由于FileReader具有比FileInputStream更好的性能,在这里使用FileReader读取文件的内容。例如:
 <%@ page contentType="text/html;charset=gb2312" import="java.io.*" buffer="64kb"%>
  <%
    try{
       BufferReader in = new BufferedReader(new FileReader("c:\\UserSession.java"));
      
       String file = "";
       String temp = "";
       while((temp = in.readLine()) != null){
           file += temp;
        }
        in.close();
        out.println(file);
        out.flush();
      }
    catch(Exception e){
      out.println(e);
      e.printStackTrace();
      }
   %>


3. 写入内容到文件
  通过FileWrite对象或者FileOutputStream把内容输入到文件中。
以下是writerFile.jsp页面
 <%@ page contentType="text/html;charset=gb2312" import="java.io.*" %>
 <html>
 <body>
   <%
      request.setCharacterEncoding( "gb2312" );
      String content = request.getParameter( "content" );
    %>
  
   <%
       try{
            PrintWriter writer = new PrintWriter(new BufferWriter(new FileWriter( "c:\\foo.out" )));
            writer.write(content);
            writer.close();
            out.println("已经把内容写到c:\\foo.out");
          }
      catch(Exception e){
           out.println(e);
           e.printStackTrace();
         }
   %>
  <form action="writerFile.jsp" method=post>
  <textarea name=content cols=20 row=5></textarea><br>
  <input type = submit value=提交>
  </form> 
</body>
 </html>

但是每次写入新的内容时,会把原来的内容删除,如果想不删除,那么改变以下的代码
PrintWriter writer = new PrintWriter(new BufferWriter(new FileWriter("c:\\foo.out",true)))
就是在FileWriter的构造方法中增加true关键字,就能将新写入的内容追加到原来的文件后面。
分享到:
评论

相关推荐

    jsp操作文件

    本文将深入探讨“jsp操作文件”的主题,旨在帮助初学者更好地理解和掌握如何在JSP中进行文件操作。 一、JSP概述 JSP是Java平台的一部分,它结合了HTML和Java代码,使得开发人员可以方便地创建动态Web应用。在JSP中...

    JSP中的文件操作

    JSP中的文件操作,也是jsp的的基础知识

    jsp 对文件的操作

    ### JSP对文件的操作知识点详解 #### 一、概述 JSP(JavaServer Pages)是一种基于Java技术的服务器端脚本语言,它允许在HTML页面中嵌入Java代码,从而实现动态网页的功能。通过JSP可以很方便地进行文件操作,如...

    JSP文件操作与应用

    在Java服务器页面(JSP)技术中,文件操作是一个关键的方面,它允许开发者读取、写入、创建和管理服务器上的文件。本教程将深入探讨JSP中的文件操作及其应用,帮助你理解和掌握相关技能。 一、JSP概述 JSP是Java...

    JSP文件操作

    JSP文件操作

    jsp文件的上传和下载

    在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...

    基于jsp的文件上传下载

    总之,基于JSP的文件上传下载是Java Web开发中的基础技能,它结合了HTML、JavaScript、Servlet和JavaBean等技术,通过合理的服务器端处理和客户端交互,实现了用户友好的文件操作功能。理解并掌握这部分知识,对于...

    JSP多文件上传(同时上传)

    在Java中,`java.io.File`类可以用来创建和操作文件。 5. **文件名处理**: 为了避免文件名冲突,通常会生成一个唯一的文件名或添加时间戳。还可以检查文件类型,确保只接受安全或指定格式的文件。 6. **错误处理...

    JSP读文件和写文件

    在JavaServer Pages (JSP) 中,读取和写入文件是常见的操作,尤其是在构建动态网页时处理用户上传的文件或者存储数据到服务器时。本文将深入探讨如何在JSP中实现这两个功能,并提供实际的代码示例。 一、JSP读文件 ...

    很好的jsp文件操作源码

    根据提供的文件标题、描述、标签以及部分内容,我们可以总结出以下重要的IT知识点,主要涉及JSP技术在文件操作方面的应用。 ### 一、读取文件目录结构 #### 代码解析: 在给定的代码片段中,我们可以看到一个示例...

    jsp中的文件操作

    xml与jsp的交互应用,适合初学者使用,对大多数初学者有一定的帮助。

    jsp页面实现文件的下载功能

    SmartUpload是一个Java库,它简化了文件上传和下载的操作。在这里,首先创建了一个SmartUpload对象并初始化,然后通过`setContentDisposition(null)`方法设置Content-Disposition为null,防止浏览器尝试预览或打开...

    jsp上传文件Demo

    【JSP上传文件Demo】是基于Java服务器页面(JSP)技术实现的一种文件上传功能的示例。在Web开发中,文件上传是一个常见的需求,例如用户上传头像、提交附件等。`SmartUpload`是一个流行的Java库,专门用于处理文件...

    jsp的文件管理系统

    在本系统中,"jsp的文件管理系统"利用JSP的特性实现了远程管理Web服务器上的文件,使得管理员无需直接登录到服务器,就能完成文件的上传、下载、删除等操作,极大地提高了工作效率和安全性。 **JSP基础** 1. **...

    一个jsp上传文件、下载文件的代码

    2. **Servlet**:JSP虽然可以直接编写Java代码,但处理复杂任务如文件操作时,通常会配合Servlet。Servlet是Java的服务器端组件,负责接收并响应HTTP请求。 3. **Commons FileUpload库**:Apache Commons ...

    java+jsp 文件下载(服务器上的文件)

    在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...

    JSP上传文件(有进度条)可上传大文件

    网上有很多文章都是jspsmart,由于jspsmart直接在内存中操作数据,如果上传大文件或多台计算机上传的话会出错,还有一些方法传得比较慢。 为了方便上传文件,本人写了一个传输文件类。 附有一个显示进度条的例子和...

    jsp简单例子-文件操作

    在Java服务器页面(JSP)开发中,文件操作是一个常见的需求,无论是为了读取配置文件、存储用户上传的数据还是处理其他文件相关的任务。本篇将深入讲解如何在JSP中进行文件读写,并解决中文乱码的问题。我们将重点...

Global site tag (gtag.js) - Google Analytics