用java实现把数据库的数据写入到txt中

来源:互联网 发布:cpu测温度软件 编辑:程序博客网 时间:2024/06/16 15:33
***    本文讲解如何用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 0
原创粉丝点击