java中未压缩的文件大小

时间:2015-07-16 18:17:50

标签: java bzip2 compression

我正在尝试使用以下代码查找未压缩的bz2文件的大小。但是,运行代码后,我得到的大小为0字节。不知道出了什么问题。请有人指出。

try{
                FileInputStream fin = new FileInputStream("/users/praveen/data1/00.json.bz2");
                BufferedInputStream in = new BufferedInputStream(fin);


                BZip2CompressorInputStream bzIn = new BZip2CompressorInputStream(in);
                  long size = 0;
                  while (bzIn.available() > 0)
                  {
                    byte[] buf = new byte[1024];
                    int read = bzIn.read(buf);
                    if (read > 0) size += read;
                  }

                  System.out.println("File Size: " + size + "bytes");
                  bzIn.close();
                //bzIn.close();
                }
                catch (Exception e) {
                throw new Error(e.getMessage());
                } 

1 个答案:

答案 0 :(得分:2)

BZip2CompressorInputStream很可能无法完全实现available()方法。它可能只返回0.相反,您应该尝试使用InputStream#read(byte[])并检查-1返回。