隨筆-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 閱讀(3033) 評論(0)  編輯  收藏 所屬分類: 每日積累
          主站蜘蛛池模板: 桦南县| 尉氏县| 盐池县| 辽宁省| 基隆市| 巴南区| 高碑店市| 尼木县| 杨浦区| 新昌县| 涟源市| 福贡县| 措勤县| 柳河县| 鸡东县| 顺昌县| 无棣县| 武夷山市| 大余县| 突泉县| 桐庐县| 顺平县| 贺兰县| 盐源县| 新龙县| 嵊泗县| 嘉峪关市| 芦山县| 三门县| 昭平县| 巍山| 玛多县| 弋阳县| 凤山县| 尼玛县| 花莲市| 青浦区| 松阳县| 磐石市| 铜陵市| 抚顺市|