MySQL存取大文件 并且避免乱码的方案

来源:互联网 发布:人工智能及机器 编辑:程序博客网 时间:2024/06/03 15:30
private static void read() {        /**         * 读取         */        Connection conn = null;        PreparedStatement stmt = null;        try {            conn = JdbcUtil.getConnection();            String sql = "select * from news where id = ?;";            //预编译            stmt = conn.prepareStatement(sql);            stmt.setInt(1, 2);            ResultSet rs = stmt.executeQuery();            while (rs.next()) {                //1)直接读取//              String context = rs.getString("context");//              System.out.println(context);                //输入流读取                Clob clob = rs.getClob("context");                Reader reader = clob.getCharacterStream();                //保存                FileWriter writer = new FileWriter("d:/url2.txt");                char[] buf = new char[512];                int len=0;                while((len=reader.read(buf))!=-1){                    writer.write(buf, 0, len);                }                writer.close();                reader.close();            }        } catch (SQLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            JdbcUtil.close(stmt, conn);        }    }
    private static void write() {        /**         * 写入         */        Connection conn = null;        PreparedStatement stmt = null;        try {            conn = JdbcUtil.getConnection();            String sql = "insert into news(title,context) values(?,?)";            //预编译            stmt = conn.prepareStatement(sql);            stmt.setString(1, "这是一个url url url url~~~~~");            /**             * 读取本地文件             */            InputStreamReader reader=new InputStreamReader(new FileInputStream("d:/url.txt"),"gbk");            stmt.setClob(2, reader);            stmt.executeUpdate();        } catch (SQLException e) {            e.printStackTrace();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } finally {            JdbcUtil.close(stmt, conn);        }    }
原创粉丝点击