第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在簡單的 java 程序中下載 zip 文件中的 blob 數(shù)據(jù)

在簡單的 java 程序中下載 zip 文件中的 blob 數(shù)據(jù)

qq_花開花謝_0 2024-01-17 16:40:54
我無法使用以下代碼下載文件,因為我有多種類型的擴展可供下載,并且我想壓縮所有文件并下載。如果我運行下面的代碼,它會說文件已損壞。請有人幫忙解決這個問題嗎?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;public class JdbcReadFile {    private static final int BUFFER_SIZE = 4096;    public static void main(String[] args) {        String url = "jdbc:oracle:thin:@xxx:xxxx:xxx";        String user = "xxx";        String password = "xxx";        String filePath = "C:/abc.vsd";        try {            Connection conn = DriverManager.getConnection(url, user, password);            String sql = "SELECT DOC_BO FROM table fetch first 10 rows only";            PreparedStatement statement = conn.prepareStatement(sql);            ResultSet result = statement.executeQuery();            if (result.next()) {                Blob blob = result.getBlob("DOC_BO");                InputStream inputStream = blob.getBinaryStream();                OutputStream outputStream = new FileOutputStream(filePath);                int bytesRead = -1;                byte[] buffer = new byte[BUFFER_SIZE];                while ((bytesRead = inputStream.read(buffer)) != -1) {                    outputStream.write(buffer, 0, bytesRead);                }                inputStream.close();                outputStream.close();                System.out.println("File saved");            }            conn.close();        } catch (SQLException ex) {            ex.printStackTrace();        } catch (IOException ex) {            ex.printStackTrace();        }    }}
查看完整描述

1 回答

?
浮云間

TA貢獻1829條經(jīng)驗 獲得超4個贊

為此不需要前端。使用以下代碼解決了問題。


公共類 BlobDataExtract { 靜態(tài) ZipOutputStream zos = null; 靜態(tài)字符串 url = "jdbc:oracle:thin:@主機名:1521:SID";


public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {

    Class.forName("oracle.jdbc.driver.OracleDriver");

    Connection conn = DriverManager.getConnection(url, "user", "password");

    String sql = "select Blob_Data,ORIG_NM from table";

    PreparedStatement stmt = conn.prepareStatement(sql);

    ResultSet rs = stmt.executeQuery();

    byte[] docBlob = null;

    String filename = null;

    FileOutputStream fos = new FileOutputStream("C:/Users/test.zip");

    zos = new ZipOutputStream(fos);

    while (rs.next()) {

        docBlob = rs.getBytes("Blob_Data");

        filename = rs.getString("ORIG_NM");

        try {

            zos.putNextEntry(new ZipEntry(filename));

            zos.write(docBlob, 0, docBlob.length);

        } catch (FileNotFoundException ex) {

            System.err.println("A file does not exist: " + ex);

        } catch (IOException ex) {

            System.err.println("I/O error: " + ex);

        }

        zos.closeEntry();

    }


}

}


查看完整回答
反對 回復 2024-01-17
  • 1 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號