您的位置:

java用输出流显示图片(java流输出的图片打不开)

本文目录一览:

JAVA如何直接在console控制台上用IO流输出图片?急求!

解决方法:int len = fis.read(); read 方法加入参数bys,这样才能把fis的内容注入bys里面。

顺便说下,FileInputStream不能正确输出中文,因为这个是按字节输出的,每个中文站2个字节,会出现乱码。

Java怎么做到把图片转换成流存入数据库,然后怎么再把图片显示出来。

首先创建一个空 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();

java 中怎么样用字符流显示一张图片

给你比较简洁的答案:

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吧。

java怎么在控制台输出一张jpg的图片

输出图片的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));

}