Connection con=null;
    Statement stmt=null;
    try{ 
      Class.forName(DRIVER);
     con=DriverManager.getConnection(URL,"sa","");
     int bytesum=0;
    int byteread=0;
    FileOutputStream fs=new FileOutputStream( "c:\\bb.txt");
    stmt=con.createStatement();
    ResultSet rs=stmt.executeQuery(
        "select * from t_sectemp where t_sectemp.id=1 ");
    while (rs.next()){
    String id=rs.getString(1);
    InputStream inStream=rs.getBinaryStream(2);
    byte[]  buffer =new  byte[1444];
    while ((byteread=inStream.read(buffer))!=-1)
    {
       out.println("<DT><B>"+byteread+"</B></DT>");
       bytesum+=byteread;
       System.out.println(bytesum);
       fs.write(buffer,0,byteread);
     }
     
     我这样子写,为什么文件中得到都是些乱码阿
都是下面这种字
?驋@   h?扏   垻扏   諓@   p?婡   軖@      

解决方案 »

  1.   

    我试了一下
    一点问题都没有
    没有乱码啊:)<%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.lang.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="DBstep.iDBManager2000.*"%>
    <%
        int bytesum=0;
        int byteread=0;
      //打开数据库
      ResultSet result=null;
      String Sql=null;
      PreparedStatement prestmt=null; 
      DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
      DbaObj.OpenConnection();
     //取得数据库中的数据
     Sql="select  *  from  list order by date desc";
     result=DbaObj.ExecuteQuery(Sql);
     result.next();
     //将数据库中的数据读到流中 
    InputStream inStream=result.getBinaryStream("body"); 
    FileOutputStream fs=new FileOutputStream( "c:/bb.doc");  byte[]  buffer =new  byte[1444];
        while ((byteread=inStream.read(buffer))!=-1)
        {
           out.println("<DT><B>"+byteread+"</B></DT>");
           bytesum+=byteread;
           System.out.println(bytesum);
           fs.write(buffer,0,byteread);
         }
    %>
      

  2.   

    我把文件类型改成bb.dat,能够看到009E 86 44 DC之类的数据
    我想的得到具体的数值(float类型),4个字节为一个数,一共是361个数。
    请问这个要怎么转换阿?
    我的表结构 id(int),sectempdata(binary)
    下面是我select 出来的结果id: 1
    sectempdata:
    0x9E168B44424289440C9689442E248944048886441E388C44F92C8A44B7078144FF1C8044DFDB81444157D4447ACCDA441CDACB449A5F6044FE137E4432997E44FE7A80441A2C834474A07244293E8A445C057044294784449D0C84441FAA8244C47778447E898044A08986448A0048440D3ACB44C7EDDA4406BCE3440871DC麻烦帮我测试一下,谢谢!!!
    分数还可以再加的
      

  3.   

    上面select的结果是在sql server的查询分析器里得到的