读数据库内容写入txt 每次就写入一个 求大家进来 看看 帮助一下 谢谢了

jjyysp 2011-04-04 08:57:07
大家好 我写了一个下载 冲数据库获得号码 然后写入文件 但我是了每次 都写一个号码 我就晕了 咋回事呢 怎么整就写入一个

输出一下 ss 数据库内容都有 但写入就一个 号码 求大家帮看看 咋回事 呢

con = DriverManager.getConnection(url, username, password);
ResultSet rs=null;
PreparedStatement pre = con
.prepareStatement("select * from phone");
rs=pre.executeQuery();
while(rs.next()){
List list=new ArrayList();
String phonenum=rs.getString("phonenum");
list.add(phonenum);
File destFile = new File("D:\\a.txt");
OutputStream os = new FileOutputStream(destFile);
for(int i=0;i<list.size();i++){

String ss=(String)list.get(i);

//System.out.println((ss+"\r\n").getBytes()); 这是我输出 全有 啊就写一个号码

os.write((ss+"\r\n").getBytes()); 这句话我都晕了

}

}
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjyysp 2011-04-04
  • 打赏
  • 举报
回复
不行 就是在 wile循环后 那么os.close 把那个os 放到上面 没得办法 yunl 谢谢你
bingchuancom999 2011-04-04
  • 打赏
  • 举报
回复
个人感觉你的输出流和服务端的处理顺序可能有点问题, 检查看看是不是输出流 在服务端关闭之前 先正常关闭了。
jjyysp 2011-04-04
  • 打赏
  • 举报
回复
网上说的 都看了 还是不行 叹气呀
jjyysp 2011-04-04
  • 打赏
  • 举报
回复
没有 呀 不知咋回事 这是一个下载 点机下载 下载正常 获取消下砸 都报 这个异常
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:764)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:124)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:570)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes
bingchuancom999 2011-04-04
  • 打赏
  • 举报
回复
呵呵, 不客气, java.net.SocketException: Connection reset by peer: socket write error,这个异常是连接的问题, 你是不是在数据处理完之前就把服务端关掉了?
jjyysp 2011-04-04
  • 打赏
  • 举报
回复
java.net.SocketException: Connection reset by peer: socket write error

好了 担报个异常 我在查 谢谢 你 我也想过是不是覆盖了 但没分析 去看看 太多要学习了 太感谢你 谢谢

jjyysp 2011-04-04
  • 打赏
  • 举报
回复
我试试 先谢谢了
bingchuancom999 2011-04-04
  • 打赏
  • 举报
回复

con = DriverManager.getConnection(url, username, password);
ResultSet rs = null;
PreparedStatement pre = con.prepareStatement("select * from phone");
rs = pre.executeQuery();


//这两要放在循环外面,不然你每次都重新定义输出流,新的会把旧的覆盖掉
File destFile = new File("D:\\a.txt");
OutputStream os = new FileOutputStream(destFile);

while (rs.next()) {

String phonenum = rs.getString("phonenum");

//另外, 如果你每条数据只有一个号码的话,就没有必要用list了
//直接把你得到String写到文件里就可以了
List<String> list = new ArrayList<String>();
list.add(phonenum);


for (int i = 0; i < list.size(); i++) {

String ss = (String) list.get(i);

//System.out.println((ss+"\r\n").getBytes()); 这是我输出 全有 啊就写一个号码

os.write((ss + "\r\n").getBytes());
os.flush();


}

}
os.close();

23,405

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧