java读取图片并转化为二进制字符串的实现方法

网友投稿 487 2023-01-21


java读取图片并转化为二进制字符串的实现方法

本例子的目的在于测试往oracle数据库中插入blob字段

public static String getImgStr(String imgFile){

//将图片文件转化为字节数组字符串,并对其进行Base64编码处理

InputStream in = null;

byte[] data = null;

//读取图片字节数组

try

{

in = new FileInputStream(imgFile);

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

in.read(data);

in.close();

}

catch (IOException e)

{

e.printStackTrace();

}

return new String(Base64.encodeBase64(data));

}

--

利用以上的思路写的一个测试

public class ReadImageTest {

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

FileInputStream fis = new FileInputStream(new File("C:\\Users\\luzhifei\\Pictures\\hc_logo.png"));

String picStr="";

byte[] read = null;

int len = 0;

read= new byte[fis.available()];

fis.read(read);

String baseStr= Base64.getEncoder().encodeToString(read);

//System.out.println( baseStr);

byte[] op= Base64.getDecoder().decode(baseStr);

// System.out.println(new String(op));

FileOutputStream fos = new FileOutputStream(new File("d:\\temp\\1.jpg"));

fos.write(op,0,op.length );

fos.flush();

fos.close();

}

}

但是available()有一定的限制。

为了稳妥,严重建议采取以下方式:

public statihttp://c void imageToBase64Str() throws IOException{

FileInputStream fis = new FileInputStream(new File("C:\\Users\\luzhifei\\Pictures\\hc_logo.png"));

byte[] read = new byte[1024];

int len = 0;

ListuQyRYL blist=new ArrayList();

int ttllen=0;

while((len = fis.read(read))!= -1){

byte[] dst=new byte[len];

System.arraycopy(read, 0, dst, 0, len);

ttllen+=len;

blist.add(dst);

}

fis.close();

byte[] dstByte=new byte[ttllen];

int pos=0;

for (int i=0;i

if (i==0){

pos=0;

}

else{

pos+=blist.get(i-1).length;

}

System.arraycopy(blist.get(i), 0, dstByte, pos, blist.get(i).length);

}

String baseStr= Base64.getEncoder().encodeToString(dstByte);

byte[] op= Base64.getDecoder().decode(baseStr);

FileOutputStream fos = new FileOutputStream(new File("d:\\temp\\2.jpg"));

fos.write(op,0,op.length );

fos.flush();

fos.close();

}

总结

以上所述是给大家介绍的java读取图片并转化为二进制字符串,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!

if (i==0){

pos=0;

}

else{

pos+=blist.get(i-1).length;

}

System.arraycopy(blist.get(i), 0, dstByte, pos, blist.get(i).length);

}

String baseStr= Base64.getEncoder().encodeToString(dstByte);

byte[] op= Base64.getDecoder().decode(baseStr);

FileOutputStream fos = new FileOutputStream(new File("d:\\temp\\2.jpg"));

fos.write(op,0,op.length );

fos.flush();

fos.close();

}

总结

以上所述是给大家介绍的java读取图片并转化为二进制字符串,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java的接口管理工具(java的接口管理工具在哪)
下一篇:Java 读取、获取配置文件.properties中的数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~