A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qq272936993 初级黑马   /  2014-11-13 20:30  /  700 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class FileUtil {
  2.        
  3.         public static byte[] readFile(String filePath ) throws IOException {
  4.                 File file = new File(filePath);
  5.                 if (!file.exists()) {
  6.                         return null;
  7.                 }
  8.                 FileChannel channel = new RandomAccessFile(file, "r").getChannel();
  9.                 int size = (int) channel.size();
  10.                 ByteBuffer bf = ByteBuffer.allocate(size);
  11.                 channel.read(bf);
  12.                 bf.flip();
  13.                 channel.close();
  14.                 return bf.array();
  15.         }
  16.        
  17.         public static final byte [] compress(byte[] val) throws IOException {
  18.                 ByteArrayOutputStream bos = new ByteArrayOutputStream( val.length );
  19.                 GZIPOutputStream gos = new GZIPOutputStream( bos );
  20.                 gos.write( val, 0, val.length );
  21.                 gos.finish();
  22.                 gos.close();
  23.                
  24.                 // store it and set compression flag
  25.                 return  bos.toByteArray();               
  26.         }
  27.        
  28.         public static final byte [] unCompress(byte[] buf) throws IOException {
  29.                 GZIPInputStream gzi = new GZIPInputStream( new ByteArrayInputStream( buf ) );
  30.                 ByteArrayOutputStream bos = new ByteArrayOutputStream( buf.length );
  31.                
  32.                 int count;
  33.                 byte[] tmp = new byte[buf.length];
  34.                 while ( (count = gzi.read(tmp)) != -1 ) {
  35.                         bos.write( tmp, 0, count );
  36.                 }

  37.                 // store uncompressed back to buffer               
  38.                 gzi.close();
  39.                 return bos.toByteArray();
  40.         }
  41.        
  42.        
  43. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马