stven_king的专栏

自信人生两百年、会当击水三千尺

Servlet读写文件

在Servlet中读取文件的操作和步骤与在普通Java程序中读取文件相同,一般利用File、FileReader和BufferedReader类的组合来完成。

例子:先在服务器上运行的当前项目的根目录下创建一个temp.txt的文档,用WriteFile.java写入内容,然后用ReadFile.java读取。

写文件:

/*用WriteFile类读取文件中的信息*/
package javaee.servlet;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/WriteFile")
public class WriteFile extends HttpServlet{
	private static final long serivalVersionUID  = 1L;
	public WriteFile(){
		super();
	}
	
	protected void doGet(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		this.doPost(request, response);
	}
	protected void 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类读取文件中的信息*/
package javaee.servlet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/ReadFile")
public class ReadFile extends HttpServlet{
private static final long serivalVersionUID  = 1L;
public ReadFile(){
super();
}

protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
this.doPost(request, response);
}
protected void 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();

}
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/stven_king/article/details/22855771
个人分类: Web开发 Java EE
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Servlet读写文件

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭