用Servlet读写文件_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
3
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2005 | 回复: 2   主题: 用Servlet读写文件        下一篇 
    本主题由 koei123 于 2015-7-14 11:08:58 移动
kim
注册用户
等级:中校
经验:1729
发帖:222
精华:0
注册:2011-7-21
状态:离线
发送短消息息给kim 加好友    发送短消息息给kim 发消息
发表于: IP:您无权察看 2015-6-9 9:05:39 | [全部帖] [楼主帖] 楼主

用来读取文件的Servlet类和其他普通Servlet 没有区别,客户端的请求会被doPost()或者doGet()方法相应,在请求中一般会包含读取文件路径。Servlet类在doPost()或者doGet()中获得客户端请求的信息,然后根据这些些信息完成读文件的操作。在Servlet中读取文件的操作和步骤与在普通Java程序中读取文件时相同,一般利用File、FeilReadre和BufferedReader类的组合来完成。

在Servlet中写文件的方法和步骤也是和普通的Java程序一致的,通常使用File、FileWriter、BufferWriter的组合来完成。

下面以一个简单的例子,该示例在服务器上运行的当前项目的更目录下创建一个名为temp.txt的文件,想其中写入信息。

/*WriterFiel.java为写文件的Servlet类*/
import .......
//设置访问或者调用Servlet的路径
@WebServlet("/WriteFile")
publicclass WriteFile extends HttpServlet{
      privatestaticfinallong serivalVersionUID = 1L;
      public WriteFile(){
            super();
      }
      protectedvoid doGet(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
            this.doPost(request, response);
      }
      protectedvoid doPost(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
            //设置页面的文档类型和字符集,页面中的字符所采用的字符集
            response.setContentType("text/html; charset=UTF-8");
            //设置页面的编码方式,即以什么样的编码方式来保存页面
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            String fileName = "temp.txt";//文件的相对路径
            String filePath = this.getServletContext().getRealPath(fileName);//文件的绝对路径
            //使用文件的绝对路径打开文件
            File file = new File(filePath);
            //使用打开的文件对象,创建FileWriter类的实例
            FileWriter writer = new FileWriter(file);
            //使用打开文件对应的writer对象,创建BufferderWriter类的实例
            BufferedWriter bufferWriter = new BufferedWriter(writer);
            bufferWriter.write(
"Java EE课程");
            bufferWriter.newLine();
            bufferWriter.write("Servlet写文件~!~!");
            //刷新缓存,将缓存的内容写到文件中


            bufferWriter.flush();
            bufferWriter.close();
            writer.close();
            out.println("<font size='2'>文件写入完毕,路径:"

 + file.getAbsolutePath() + "</font>");
      }
}
/*用ReadFile类读取temp.text文件中的信息*/
package javaee.servlet;
import …………
//设置访问或者调用这个Servlet的路径

@WebServlet("/ReadFile")
publicclass ReadFile extends HttpServlet{
      privatestaticfinallong serivalVersionUID = 1L;
      public ReadFile(){
            super();
      }
      protectedvoid doGet(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
            this.doPost(request, response);
      }
      protectedvoid doPost(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
            //设置页面的文档类型和字符集,页面中的字符所采用的字符集
            response.setContentType("text/html; charset=UTF-8");
            //设置页面的编码方式,即以什么样的编码方式来保存页面
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
            out.println("<HTML>");
            out.println("<HEAD><meta charset=\"UTF-8\"><TITLE>A Servelt</TITLE></HEAD>");
            out.println("<BODY>");
            out.println("<XMP>");
            String fileName = "temp.txt";//文件的相对路径
            String filePath = this.getServletContext().getRealPath(fileName);//文件的绝对路径
            out.println(

"要读取的文件:"

 + filePath);
            out.println("内容如下:");
            //使用文件的绝对路径打开文件

    File file = new File(filePath);
            if(file.exists()){
                  //使用打开的文件对象,创建FileReader类的实例
                  FileReader reader = new FileReader(file);
                  //使用打开文件对应的reader对象,创建BufferderReader类的实例
                  BufferedReader bufferReadre = new BufferedReader(reader);
                  String line = null;
                  //逐行读取文件,并输出到页面上
                  while((line = bufferReadre.readLine())!=null){
                        out.println(line);
                  }
                  bufferReadre.close();
            }else{
            out.println(
"未找到文件!");
      }
      out.println("</XMP>");
      out.println("</BODY>");
      out.println("<HTML>");
      out.flush();
      out.close();
}
}


--转自 北京联动北方科技有限公司

该贴由koei123转至本版2015-7-14 11:08:58



赞(0)    操作        顶端 
yr
注册用户
等级:少校
经验:1085
发帖:5
精华:0
注册:2015-1-19
状态:离线
发送短消息息给yr 加好友    发送短消息息给yr 发消息
发表于: IP:您无权察看 2015-6-10 9:10:50 | [全部帖] [楼主帖] 2  楼

其实还是获取输入输出流来实现啦 北京联动北方科技有限公司



赞(0)    操作        顶端 
要不要这么难啊
注册用户
等级:下士
经验:155
发帖:1
精华:0
注册:2015-6-8
状态:离线
发送短消息息给要不要这么难啊 加好友    发送短消息息给要不要这么难啊 发消息
发表于: IP:您无权察看 2015-6-10 9:28:20 | [全部帖] [楼主帖] 3  楼

楼上正解,输入输出流可以完成。 北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
3
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论