网络编程
位置:首页>> 网络编程>> 数据库>> java实现数据库的数据写入到txt的方法

java实现数据库的数据写入到txt的方法

作者:码农之路  发布时间:2024-01-28 06:22:16 

标签:java,数据库,数据写入

本文讲解如何用java实现把数据库的数据写入到txt中 并实现类似下载软件的样子在网页中弹出下载.


package datatest;

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.ConnDB;

public class export extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 //设置编码
 response.setCharacterEncoding("UTF-8");
 //连接数据库
 ConnDB conn = new ConnDB();
 ServletOutputStream outputstream = null;
 BufferedOutputStream buffoutputstream = null;
 String txt_name = "导出的txt文件名.txt";//导出的txt文件名
 try {
  response.reset();// 清空输出流
  response.setContentType("text/plain;charset=utf-8");
  //设置txt文件名称编码,防止中文乱码
  response.setHeader("Content-disposition", "attachment; filename="+URLEncoder.encode(txt_name, "UTF-8"));
 StringBuffer write = new StringBuffer();
  outputstream=response.getOutputStream();
  buffoutputstream = new BufferedOutputStream(outputstream);
 //根据id查询数据库
  int id=Integer.parseInt(request.getParameter("id"));
  String sql = "select a.id,name,account,password ";
  sql+="from test_rank a ";
  sql+="left join test_join b on b.id=a.id where a.id="+id;
  ResultSet rs = conn.doQuery(sql);
  String content="";
  try {
   while(rs.next())
   {
    //把数据库中读取的数据写入
    content=rs.getString("name")+"\r\n";//在txt中换行为\t\n
    write.append(content);
    content=rs.getString("account")+"\r\n";
    write.append(content);
    break;
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  //write.append(content);
  //设置编码 防止中文乱码
  String str = new String(write.toString().getBytes(),"gbk");
  buffoutputstream.write(str.toString().getBytes("gbk"));
  buffoutputstream.flush();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 finally {
  if (outputstream != null)
   try {
    outputstream.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  if (buffoutputstream != null)
   try {
    buffoutputstream.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
 }

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 this.doGet(request, response);
}

}

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com