⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zipserver.java

📁 以前做的一个j2ee的项目
💻 JAVA
字号:
package gov.gdlt.ssgly.taxcore.taxblh.wdsc.zipwdsc;
import java.util.zip.*;
import java.io.*;
import gov.gdlt.ssgly.taxcore.comm.bizdelegate.SsglyDelegateRemote;
import gov.gdlt.ssgly.taxcore.comm.servicelocator.JDBCLocator;
import java.sql.Connection;
import gov.gdlt.ssgly.taxcore.taxevent.wdsc.WDSCyhswdscResEvent;
import gov.gdlt.ssgly.taxcore.taxevent.wdsc.WDSCyhswdscReqEvent;
import java.sql.Statement;
import java.sql.ResultSet;

/**
 * <p>Title: </p>
 *
 * <p>Description: 广东地税税收管理员工作平台</p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 * 一户式信息
 * @author 张承华
 * @version 1.0
 */

public class ZipServer {
    public ZipServer() {
    }

    public static void main(String[] args) throws Exception {
        ZipServer zipserver = new ZipServer();
        Connection conn = null;
        WDSCyhswdscReqEvent reqEvent = new WDSCyhswdscReqEvent();
        WDSCyhswdscResEvent resEvent = null;
        String sql = "";
        Statement stmt = null;
        ResultSet rs = null;
        boolean bAutoCommit = false;
        java.sql.Blob blob = null;
        try {
            SsglyDelegateRemote ssgly = new SsglyDelegateRemote();
            reqEvent.setDealMethod("IgetConnection");
            resEvent = (WDSCyhswdscResEvent)ssgly.invokeTask(reqEvent);
            conn = resEvent.getConn();

            //get file with local host c:\\test.htm
            //创建一个文件实例
            File f = new File("c:\\test.htm");
            if (!f.exists()) {
                return; //文件不存在,则返回
            }
            System.out.println("文件大小:" + String.valueOf(f.length()));
            //用文件输入流构建ZIP压缩输入流
            FileInputStream fIS = new FileInputStream(f);
            //ZipInputStream zipis = new ZipInputStream(fIS);

            /*
            sql =  "INSERT INTO db_ssgly.T_WDSC_WD (WD_MC, WD_SM, WD_NR, WDSC_SJ, WDXG_SJ, MB_BM, CZY_BM, SWJG ) VALUES ( '99999920051101', '压缩测试', EMPTY_BLOB(), to_date('2005-11-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), sysdate, '0001',  'olla', '%' )";
            System.out.println(sql);
            stmt = conn.createStatement();
            stmt.execute(sql);
            conn.commit();
            */
            bAutoCommit = conn.getAutoCommit();
            conn.setAutoCommit(false);
            sql = " select * from db_ssgly.t_wdsc_wd where wd_mc = '99999920051101' for update ";
            stmt = conn.createStatement();
            stmt.execute("update db_ssgly.t_wdsc_wd set wd_nr = EMPTY_BLOB() where  wd_mc = '99999920051101' ");
            rs = stmt.executeQuery(sql);
            if (rs.next()) {
                blob = rs.getBlob("wd_nr");
            }
            OutputStream outstream = null;
            outstream = ((weblogic.jdbc.vendor.oracle.OracleThinBlob)blob).getBinaryOutputStream();

            //compress(outstream, fIS, (int)f.length());
            outstream.close();outstream.close();
            conn.commit();
            conn.setAutoCommit(bAutoCommit);

            //uncompress oracle blob
            rs.close();
            stmt.close();
            stmt = conn.createStatement();
            sql = "  select * from db_ssgly.t_wdsc_wd where wd_mc = '99999920051101' ";
            rs = stmt.executeQuery(sql);
            if (rs.next()) {
                blob = rs.getBlob("wd_nr");
                System.out.println("blob.len=" + String.valueOf(blob.length()));
            }
            conn.commit();
            long blobLen = blob.length();
            InputStream input = ((java.sql.Blob)blob).getBinaryStream();
            String s = uncompress(input, (int)blobLen);
            input.close();
            //System.out.println(s);

        } catch (Exception e) {
            throw new Exception(e.getMessage());
        } finally {
            if (conn != null) {
                conn.setAutoCommit(bAutoCommit);
                conn.close();
            }
        }
    }
/*
    public static OutputStream compress(OutputStream output, InputStream input, int len) throws Exception {

        if (output == null || input == null || len <= 0) return output;

        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();

            ZipOutputStream zipos = new ZipOutputStream(bos);
            zipos.setMethod(ZipOutputStream.DEFLATED); //设置压缩方法
            zipos.putNextEntry(new ZipEntry("olla"));

            byte b[] = new byte[len];
            input.read(b);
            zipos.write(b);
            zipos.close();
            b =  bos.toByteArray();
            output.write(b);
        } catch (Exception e) {
            throw new Exception("压缩文件失败!错误信息:" + e.getMessage());
        }
        return output;
    }
 */


    //output:输出流
    //str:待压入输出流的字符串
    //返回输出字符串
    //注:本方法不关闭output流,请另行关闭
    public static OutputStream compress(OutputStream output, String str) throws Exception {
        if (output == null || str == null) return output;
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();

            ZipOutputStream zipos = new ZipOutputStream(bos);
            zipos.setMethod(ZipOutputStream.DEFLATED); //设置压缩方法
            zipos.putNextEntry(new ZipEntry("olla"));

            //用ZIP输出流构建DataOutputStream;
            byte b[] = str.getBytes("iso-8859-1");
            zipos.write(b);
            zipos.flush();
            zipos.close();
            b =  bos.toByteArray();
            output.write(b);
            bos.flush();
            output.flush();
            bos.close();

        } catch (Exception e) {
            throw new Exception("压缩文件失败!错误信息:" + e.getMessage());
        } finally {

        }
        return output;
    }

/*
    public static String compress(OutputStream output, String str, String filename) throws Exception {
        if (output == null || str == null) return "参数有误!";
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();

            ZipOutputStream zipos = new ZipOutputStream(bos);
            zipos.setMethod(ZipOutputStream.DEFLATED); //设置压缩方法
            zipos.putNextEntry(new ZipEntry("olla"));

            //用ZIP输出流构建DataOutputStream;
            byte b[] = str.getBytes();
            zipos.write(b);
            zipos.close();
            b =  bos.toByteArray();
            output.write(b);
            if (!filename.equals("")) {
                File f = new File(filename);
                if (!f.exists()) {
                    if (!f.createNewFile())
                        return "创建文件" + filename + "失败!"; //文件不存在,则返回
                }
                //用文件输入流构建ZIP压缩输入流
                FileOutputStream fOS = new FileOutputStream(f);
                fOS.write(b);
                fOS.close();
            }
        } catch (Exception e) {
            throw new Exception("压缩文件失败!错误信息:" + e.getMessage());
        }
        return "压缩到文件" + filename + "成功!";
    }
*/


    //input:输入流
    //len:输入流长度
    //返回:输入流解压后的字符串
    //注:本方法不关闭input流,请另行关闭
    public static String uncompress(InputStream input, int len) throws Exception {
        if (input == null) return "";
//System.out.println("compress file len=" + String.valueOf(len));
        String retStr = "";
        DataInputStream dis = null;
        try {
            byte bb[] = new byte[len];
            input.read(bb);
            ByteArrayInputStream bis = new ByteArrayInputStream(bb);
            ZipInputStream zipis = new ZipInputStream(bis);
            ZipEntry zipEntry = zipis.getNextEntry();

            dis = new DataInputStream(zipis);
            StringBuffer buffer = new StringBuffer();
            int i = 0;
            while ((i = dis.read()) != -1) {
                buffer.append((char) i);
            }

            dis.close();
            bis.close();
            buffer = new StringBuffer(new String(buffer.toString().getBytes("iso-8859-1"), "gb2312"));

            retStr = buffer.toString();

        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(e.getMessage());
        } finally {
            //input.close();
        }
        return retStr;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -