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/n/126857.html

(0)
简单一点的头像简单一点
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • Git Hooks详解

    一、githooks权限 Git Hooks是在Git版本控制的基础上,提供了一些钩子(hooks),可以在一些关键的节点上执行特定的自定义脚本。这些脚本代码会自动执行,不需要手动…

    编程 2024-10-09
  • CSS常用的10种Web安全字体

    一、什么是Web安全字体? 在Web设计中,选用字体不再仅仅是为文字添加风格,它能提高网站的用户体验和品牌形象。然而,浏览器不支持所有的字体,特别是某些不常用的字体。因此,我们需要…

    编程 2024-10-04
  • SQL查询语句详解

    一、SQL查询语句 SQL是“结构化查询语言”的缩写,是一种常用于关系型数据库的查询语言。SQL查询语句是用于从数据库中检索所需数据的命令。SQL查询语句通常由SELECT、FRO…

    编程 2024-10-03
  • javaweb框架,javaweb框架实训目的

    本文目录一览: 1、当前java web 开发用得一般都是哪些框架 2、java web现在流行用什么框架? 3、北大青鸟设计培训:Javaweb现在流行用什么框架? 当前java…

    编程 2024-10-04
  • java重写运算符,java重写函数

    本文目录一览: 1、java中的运算符重载 2、java中重载与重写的区别 3、java.lang.String 如何实现的运算符重载?以加号为例说明。 java中的运算符重载 每…

    编程 2024-10-10
  • 网页目录树php,html 目录树

    本文目录一览: 1、php开发中,如何将开发目录已经存在的项目显示到zendstudio的目录树 2、用php做的网盘,网盘页面用的是js,但是登陆上之后,页面的目录树总是不显示,…

    编程 2024-10-04
  • 为知笔记私有化部署

    作为一款优秀的笔记软件,为知笔记受到了广大用户的喜爱。但是,由于一些特殊需求,不少用户希望能够将其私有化部署。为此,本文将从多个方面对为知笔记私有化部署做详细的阐述。 一、为知笔记…

    编程 2024-10-04
  • Java编程思想,java编程思想第四版过时了吗

    本文目录一览: 1、JAVA编程思想一共有几章 2、学习java需要学哪些 看什么书 3、Java编程大神,常常说的Java编程思想是什么? 4、java有哪些书籍推荐呢? JAV…

    编程 2024-10-04
  • Java Lambda表达式

    一、引言 在Java 8中,引入了Lambda表达式的概念,这大大提高了Java编程的效率和可读性。Lambda表达式是一种匿名函数,它可以传递给函数式接口,使得代码更加简洁和易于…

    编程 2024-10-11
  • Python合并两个数组详解

    一、Python合并两个数组并排序 Python语言中合并两个数组并排序非常简单。可以将两个数组合并为一个,再使用Python的sort()方法对合并后的数组进行排序。 arr1 …

    编程 2024-10-03

发表回复

登录后才能评论