zoukankan      html  css  js  c++  java
  • BOLB转word文件,和word文件转换BOLB

    1.BOLB转word文件

    import java.io.*;
    import java.sql.*;
     
    public class Test {
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
     
        private ResultSet getResultSet() {
     
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
                String url = "jdbc:oracle:thin:@10.23.117.110:1521:zgzhms";
                String user = "ibms";
                String password = "ibms";
                con = DriverManager.getConnection(url, user, password);
                stmt = con.createStatement();
                String sql = "SELECT  t.TXN_TRADE FROM  T_TXN_TRADE t    WHERE  t.txn_trade_id = 1";
                rs = stmt.executeQuery(sql);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return rs;
        }
     
        public void InputDoc() {
            Test temp = new Test();
            ResultSet rset = temp.getResultSet();
            try {
                while (rset.next()) {
                    oracle.sql.BLOB blob = (oracle.sql.BLOB) rset.getBlob("TXN_TRADE");
                    File f = new File("C:\temp.doc");
                    FileOutputStream fos = new FileOutputStream(f);
                    InputStream is = blob.getBinaryStream();// 读出数据后转换为二进制流
                    byte[] data = new byte[1024];
                    while (is.read(data) != -1) {
                        fos.write(data);
                    }
                    fos.close();
                    is.close();
                }
                con.commit(); // 正式提交
                rset.close();
            } catch (Exception e) {
            }
        }
     
        public static void main(String[] args) {
            Test temp = new Test();
            temp.InputDoc();
        }

    2.word文件转换BOLB

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import oracle.sql.BLOB;
    
    public class DbBlobTest {
    
        private static
        final String DB_URL = "jdbc:oracle:thin:@10.0.7.170:1522:ORCL5";
    
        private static
        final String DB_USER = "test";
    
        private static final String
                DB_PASSWORD = "test";
    
        private static Connection conn =
                null;
    
        public static void main(String[] args) throws
                Exception {
            // insert into blob
    
            Connection conn = getConnection();
    
    
            PreparedStatement ps = conn
    
                    .prepareStatement("INSERT INTO WORD_FILE  (GYO_NUM, WORD_KB, WORD_FILENAME, BIKO, USR_ID, YMDT, WORD_FILE) values(6, 'KYK002', '20171114test.doc', '備考', 'VENAS', TO_DATE('17-11-14', 'RR-MM-DD'), ?)");
    
            String inFile =
                    "C:/Users/zhangrw/Desktop/test/2nANQz3wsFN8rkrTZa5P8xQY8PRBhyHw.jpg ";
    
            //设定的是blob类型
            ps.setBlob
                    (1, file2Blob(inFile));
            ps.executeUpdate();
        }
    
    
        /**
         * test blob data 2 file
         *
         * @throws Exception
         */
        public static void testBlob2File() throws Exception {
    
            Connection conn = getConnection();
    
    
            PreparedStatement ps = conn
                    .prepareStatement
                            ("select * from WORD_FILE a ");
    
            ResultSet rs =
                    ps.executeQuery();
            int index = 1;
            while
                    (rs.next()) {
                Blob bl = rs.getBlob("WORD_FILE");
    
                String outFile =
                        "C:/Users/zhangrw/Desktop/test/dou_" + (index++) + ".doc";
    
    
                blob2File(bl, outFile);
            }
        }
    
        /**
         * upload
         * file
         * 通过二进制的方式来上传文件
         */
        public static void testFile2byte() {
            try {
                // insert into blob
                Connection conn = getConnection();
    
    
                PreparedStatement ps = conn
    
                        .prepareStatement("INSERT INTO WORD_FILE(GYO_NUM, WORD_KB, WORD_FILENAME, BIKO, USR_ID, YMDT, WORD_FILE) values(4, 'KYK002', '20171114test.doc', '備考', 'VENAS', TO_DATE('17-11-14', 'RR-MM-DD'), ?)");
    
                String inFile = "C:/Users/zhangrw/Desktop/test/2nANQz3wsFN8rkrTZa5P8xQY8PRBhyHw.jpg ";
    
                byte[] result = file2Byte(inFile);
    
                //设定的是自己码文件
                ps.setBytes(1, result);
    
                ps.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
        }
    
        /**
         * 将文件转化为
         * Blob的对象
         * create file 2 blob
         *
         * @param inFile
         * @return
         */
        public static Blob file2Blob(String inFile) {
    
            try {
    
                byte[] result = file2Byte(inFile);
                //creat a new blob
    //            BLOB blob = BLOB.createTemporary(conn, true, BLOB.DURATION_SESSION);
    
                BLOB blob = BLOB.empty_lob();
                //set start is 1
                //这个setBytes 是指定起点,然后设定字节
                blob.setBytes(1, result);
    
                //pub byte 这个方法是添加byte
    //          blob.putBytes(1, result);
                return blob;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 将文件转化为二进制的数据
         * create file 2 byte
         *
         * @param inFile
         * @return
         */
        public static byte[]
        file2Byte(String inFile) {
            InputStream in = null;
    
            try {
                in = new FileInputStream(new File(inFile));
    
    
                int len = in.available();
                byte[]
                        result = new byte[len];
                in.read(result);
    
    
                return result;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
    
        }
    
        /**
         * 将Blob文件转化为Blob对象
         * convert blob to file
         *
         * @param blob
         * @param outFile
         */
        public static void blob2File(Blob blob, String outFile) {
    
            InputStream in = null;
            OutputStream out = null;
    
            try {
                //通过getBinaryStream 方法获取输入流
    
                in = blob.getBinaryStream();
                out = new
                        FileOutputStream(new File(outFile));
                byte[] buff
                        = new byte[1024];
                int len = 0;
                while
                        ((len = in.read(buff)) > 0) {
                    out.write(buff,
                            0, len);
                }
            } catch (Exception e) {
    
                e.printStackTrace();
            } finally {
                try {
    
                    if (in != null) {
                        in.close();
    
                    }
                } catch (IOException e) {
    
                    e.printStackTrace();
                }
                try {
    
                    if (out != null) {
                        out.close();
    
                    }
                } catch (IOException e) {
    
                    e.printStackTrace();
                }
            }
        }
    
        static {
    
            try {
                Class.forName
                        ("oracle.jdbc.driver.OracleDriver");
    
                conn =
                        DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
        public static Connection getConnection() {
    
            try {
    
                if (conn == null) {
                    Class.forName
                            ("oracle.jdbc.driver.OracleDriver");
    
                    conn =
                            DriverManager
                                    .getConnection(DB_URL,
                                            DB_USER, DB_PASSWORD);
                }
                return conn;
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
    
            return null;
        }
    }
  • 相关阅读:
    获取ArcMap窗口句柄,通过WinAPI获取工作空间中点击要素的系统桌面坐标实现窗体跟随
    ArcGis Go to XY功能代码C#
    Python入门第二篇:基础语法
    python入门第一篇:python语言简介
    Robotium结果的收集和失败重跑
    adb问题整理
    adb pull 与 push
    Monkey测试的参数
    Linux主要命令
    命令行启动应用的几种常见类型
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/11690890.html
Copyright © 2011-2022 走看看