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();

}
}


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Servlet中,可以通过使用Java文件操作API读写文件。 首先,要读取文件内容,可以使用FileInputStream或BufferedReader类。FileInputStream类用于从文件中读取字节,而BufferedReader类可用于按行读取文件。 例如,要读取文本文件的内容,可以使用如下代码片段: ``` try { String filePath = "/path/to/file.txt"; // 文件路径 File file = new File(filePath); BufferedReader reader = new BufferedReader(new FileReader(file)); String line; StringBuilder fileContent = new StringBuilder(); while ((line = reader.readLine()) != null) { fileContent.append(line); } reader.close(); // 对读取到的文件内容进行处理 String content = fileContent.toString(); // ... } catch (IOException ex) { ex.printStackTrace(); } ``` 接下来,如果需要在Servlet中写入文件,可以使用FileOutputStream或PrintWriter类。FileOutputStream类用于将字节写入文件,而PrintWriter类可用于写入文本文件。 例如,要写入文本文件,可以使用如下代码片段: ``` try { String filePath = "/path/to/file.txt"; // 文件路径 File file = new File(filePath); PrintWriter writer = new PrintWriter(new FileWriter(file)); writer.println("Hello, World!"); writer.println("This is a sample text."); writer.close(); // 文件写入成功 } catch (IOException ex) { ex.printStackTrace(); } ``` 需要注意的是,在使用这些类进行文件读写操作时,应该捕获和处理可能产生的IOException异常,以便在发生错误时能够进行适当的处理和报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值