向txt中写入数据 java_java实现数据库的数据写入到txt的方法

这篇博客介绍了如何使用Java将数据库中的数据写入TXT文件,并在网页上以下载方式提供。通过建立Servlet,设置编码,连接数据库,查询指定ID的数据,然后将查询结果写入TXT文件并进行编码处理,防止中文乱码。最终实现了一个简单的数据导出功能。
摘要由CSDN通过智能技术生成

本文讲解如何用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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值