将base64编码的字符串数据压缩成解码格式

时间:2014-02-17 11:29:35

标签: java web-services tomcat

我正在解码base64字符串数据并保存到数据库中,如带有时间戳的url格式,所以我需要压缩解码数据和我的压缩,如果即将到来的数据小于100kb,则无需压缩否则压缩数据50%的折扣。

try

{

String FileItemRefPath = propsFPCConfig.getProperty("fileCreationReferencePath");

String imageURLReferncePath = propsFPCConfig.getProperty("imageURLReferncePath");

File f = new File(FileItemRefPath+"/"+"productimages"+"/"+donorId);

String strException = "Actual File "+f.getName();



        if(!f.exists())

        {

            if (!f.mkdirs())

            {
                System.out.println("direction creation failed");

                return null;
            }
        }
        else
        {
            boolean isdirCreationStatus = f.mkdirs();
        }   

String strDateTobeAppended = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());

        String fileName = strImageName+strDateTobeAppended;

        savedFile = new File(f.getAbsolutePath()+"/"+fileName);


        strException=strException+" savedFile "+savedFile.getName();

        Base64 decoder = new Base64();

        byte[] decodedBytes = decoder.decode(strImageBase64);

        if( (decodedBytes != null) && (decodedBytes.length != 0) )
        {
        System.out.println("Decoded bytes length:"+decodedBytes.length);

        fos = new FileOutputStream(savedFile);

        System.out.println(new String(decodedBytes) + "\n") ; 

        int x=0;
        {
            fos.write(decodedBytes, 0, decodedBytes.length);
        }

        fos.flush();

        }

        if(fos != null)
        {
            fos.close();

        System.out.println("file output stream"+savedFile.getName());

            return savedFile.getName();
        }
        else
        {
            return null;
        }
    }
    catch(Exception e)
    {

       e.printStackTrace();
    }
    finally
    {
       try 
       {
           if( fos!= null)
           {
               fos.close();
           }
           else
           {
               savedFile = null;
           }
       } 
       catch (IOException e) 
       {

        e.printStackTrace();
       }
    }
    return savedFile.getName();
}

1 个答案:

答案 0 :(得分:0)

您的主要问题可能不是在Java中压缩它。为此,您可以使用the Deflater class之类的内容。但是在iOS上它可能会有点复杂,因为我不确定你在iOS中可以使用哪种类似zlib的工具。