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

网友投稿 505 2023-04-25


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

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

package datatest;

import java.io.BufferedOutputStream;

import java.io.IOException;

import java.io.Unshttp://upportedEncodingException;

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 (IOEhttp://xception 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);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:vue事件修饰符和按键修饰符用法总结
下一篇:接口设计示例(接口设计怎么写)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~