隨筆-51  評論-14  文章-0  trackbacks-0

          import java.io.ByteArrayInputStream;
          import java.io.ByteArrayOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.OutputStream;
          import java.sql.Blob;
          import java.sql.SQLException;

          import javax.servlet.ServletOutputStream;

          public class ByteStreamConverter {

              
          // 將流文件轉換為二進制文件
              public byte[] toByteArray(Blob fromBlob) {
                  ByteArrayOutputStream baos 
          = new ByteArrayOutputStream();
                  
          try {
                      
          return toByteArrayImpl(fromBlob, baos);
                  } 
          catch (SQLException e) {
                      
          throw new RuntimeException(e);
                  } 
          catch (IOException e) {
                      
          throw new RuntimeException(e);
                  } 
          finally {
                      
          if (baos != null) {
                          
          try {
                              baos.close();
                          } 
          catch (IOException ex) {
                          }
                      }
                  }
              }

              
          // 將流文件轉換為二進制文件的實現
              public byte[] toByteArrayImpl(Blob fromBlob, ByteArrayOutputStream baos)
                      
          throws SQLException, IOException {
                  
          byte[] buf = new byte[2048];
                  InputStream is 
          = fromBlob.getBinaryStream();
                  
          try {
                      
          for (;;) {
                          
          int dataSize = is.read(buf);
                          
          if (dataSize == -1)
                              
          break;
                          baos.write(buf, 
          0, dataSize);
                      }
                  } 
          finally {
                      
          if (is != null) {
                          
          try {
                              is.close();
                          } 
          catch (IOException ex) {
                          }
                      }
                  }
                  
          return baos.toByteArray();
              }
          }
          posted on 2008-07-10 10:39 Hank1026 閱讀(3034) 評論(0)  編輯  收藏 所屬分類: 每日積累
          主站蜘蛛池模板: 海盐县| 庆阳市| 兰考县| 永胜县| 安康市| 清新县| 年辖:市辖区| 扬中市| 凤凰县| 东光县| 苍溪县| 安宁市| 呼图壁县| 阳高县| 广饶县| 遂川县| 来凤县| 剑阁县| 建阳市| 徐州市| 松江区| 通州区| 新源县| 荣昌县| 万州区| 大洼县| 加查县| 鹤峰县| 昌吉市| 金昌市| 桓台县| 南郑县| 湖口县| 读书| 长葛市| 班玛县| 巴林右旗| 民丰县| 阳高县| 萝北县| 江油市|