java用輸出流顯示圖片(java流輸出的圖片打不開)

  • 1、JAVA如何直接在console控制台上用IO流輸出圖片?急求!
  • 2、Java怎麼做到把圖片轉換成流存入數據庫,然後怎麼再把圖片顯示出來。
  • 3、java 中怎麼樣用字符流顯示一張圖片
  • 4、java怎麼在控制台輸出一張jpg的圖片

解決方法:int len = fis.read(); read 方法加入參數bys,這樣才能把fis的內容注入bys裡面。

順便說下,FileInputStream不能正確輸出中文,因為這個是按字節輸出的,每個中文站2個字節,會出現亂碼。

首先創建一個空 Blob/Clob 字段,再從這個空 Blob/Clob字段獲取游標,例如下面的代碼:

PreparedStatement ps = conn.prepareStatement( ” insert into PICTURE(image,resume) values(?,?) ” );

// 通過oralce.sql.BLOB/CLOB.empty_lob()構造空Blob/Clob對象

ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());

ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());

ps.excuteUpdate();

ps.close();

// 再次對讀出Blob/Clob句柄

ps = conn.prepareStatement( ” select image,resume from PICTURE where id=? for update ” );

ps.setInt( 1 , 100 );

ResultSet rs = ps.executeQuery();

rs.next();

oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 );

oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 );

// 將二進制數據寫入Blob

FileInputStream inStream = new FileInputStream( ” c://image.jpg ” );

OutputStream outStream = imgBlob.getBinaryOutputStream();

byte [] buf = new byte [ 10240 ];

int len;

while (len = inStream.read(buf) 0 ) {

outStream.write(buf, 0 ,len);

}

inStream.close();

outStream.cloese();

// 將字符串寫入Clob

resClob.putString( 1 , ” this is a clob ” );

// 再將Blob/Clob字段更新到數據庫

ps = conn.prepareStatement( ” update PICTURE set image=? and resume=? where id=? ” );

ps.setBlob( 1 ,imgBlob);

ps.setClob( 2 ,resClob);

ps.setInt( 3 , 100 );

ps.executeUpdate();

ps.close();

給你比較簡潔的答案:

import java.io.FileReader;

import java.io.FileWriter;

public class TestCopy {

public static void main(String[] args) {

try {

FileReader fr = new FileReader(“D:/text.txt”);

FileWriter fw = new FileWriter(“D:/textCopy.txt”);

int b = fr.read();

while (b != -1) {//讀取文件,一邊輸出內容

fw.write(b);

System.out.print((char) b);

b = fr.read();

}

fw.close();

fr.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

好好看下API吧。

輸出圖片的base64編碼

//imgFile是圖片的路徑

public static void getImageStr(String imgFile) {

    InputStream inputStream = null;

    byte[] data = null;    

    try {

        inputStream = new FileInputStream(imgFile);

        data = new byte[inputStream.available()];

        inputStream.read(data);

        inputStream.close();

    } catch (IOException e) {

        e.printStackTrace();

    }    // 加密

    BASE64Encoder encoder = new BASE64Encoder();    

    System.out.println(encoder.encode(data));

}

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126857.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 國家數字圖書館官網打不開怎麼辦?

    如果你發現無法訪問國家數字圖書館官網,可能是以下幾個方面導致的。 一、網絡連接問題 首先,我們要確定自己的網絡存在沒有問題。可以通過瀏覽器訪問其他網站來檢測網絡連接是否正常。 二、…

    編程 2025-04-29
  • 用Python繪製酷炫圖片

    在本篇文章中,我們將展示如何使用Python繪製酷炫的圖片。 一、安裝Python繪圖庫 在使用Python繪製圖片之前,我們需要先安裝Python繪圖庫。Python有很多繪圖庫…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論