在Java編程中,Blob和File都是常用的數據類型。Blob代表二進制大對象,而File代表文件。有時候我們需要將Blob轉換為File,或者將File轉換為Blob,這就需要用到一些Java API來實現。
將Blob轉換為File:
//獲取Blob Blob blob = rs.getBlob("image"); //獲取輸出流對象 FileOutputStream fos = new FileOutputStream("temp.jpg"); //將Blob轉為字節數組 byte[] b = blob.getBytes(1, (int) blob.length()); //將字節數組寫入輸出流中 fos.write(b); //關閉輸出流和Blob對象 fos.close(); blob.free();
將File轉換為Blob:
//獲取文件對象 File file = new File("temp.jpg"); //獲取輸入流對象 FileInputStream fis = new FileInputStream(file); //將輸入流中的字節轉為字節數組 byte[] b = new byte[(int) file.length()]; fis.read(b); //獲取Blob對象 Blob blob = con.createBlob(); //將字節數組寫入Blob對象中 blob.setBytes(1, b); //關閉輸入流 fis.close();
需要注意的是,以上代碼的實現還需要先獲取到數據庫連接對象。這是因為Blob對象是由數據庫連接提供的。