java 图片缓存工具,java缓存读取图片解决方案

java缓存读取图片

老师布置了任务,需要把数据库中的图片一缓存的形式读出,不要说什么数据库中路劲,图片整体较大,在给别人使用时不现实。

关键代码:for(int i=0;i<1;i++){

downloadDB(bi);

pm[i]=new paintimage(bi);

}

public void downloadDB(BufferedImage bi){

try{

/* String s="c:\\downloadDB\\"+i+".png";

File file=new File(s);

FileOutputStream fos=new FileOutputStream(file);*/

InputStream in=null;

String url="jdbc:mysql://192.168.**.***:3306/de";

Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection(url,"root","***");

String sql="select * from campusimage";

Statement st=con.createStatement();

ResultSet rs=st.executeQuery(sql);

for(int j=0;j<1;j++)

rs.next();

int m;

if(rs.next())

in=rs.getBinaryStream(1);

/*while((m=in.read())!=-1)

fos.write(m);*/

BufferedInputStream is=new BufferedInputStream(in);

bi=ImageIO.read(is);

System.out.println("00000000000");

rs.close();

st.close();

con.close();

}catch(Exception e){e.printStackTrace();}

}

class paintimage extends JPanel{

//ImageIcon icon=null;

Image ima=null;

paintimage(BufferedImage bi){

/*String s1="c:\\downloadDB\\"+i+".png";

icon=new ImageIcon(s1);

ima=icon.getImage();*/

ima=(Image)bi;

setBounds(0,0,700,600);

System.out.println("1111111111");

}

public void paint(Graphics g){

g.drawImage(ima,0,0,700,600,null);

System.out.println("2222222222");

}

}

求指教,我会出的是空白图。

java

缓存

图片

数据库

mysql

分享到:

------解决方案--------------------

如果读出来是16进制字符串的话,

16进制字符串-》byte数组-》流-》文件

public class ImgHelper {

public static void getImg(String hexString) {

byte[] b = ByteHelper.hexStringToBytes(hexString);

InputStream is = ByteHelper.byte2Input(b);

createFile(is, new File("D://pp.jpg"));

}

//生成图像文件

public static void createFile(InputStream is, File targetFile) {

BufferedInputStream inBuff = null;

BufferedOutputStream outBuff = null;

try {

// 新建文件输入流并对它进行缓冲

inBuff = new BufferedInputStream(is);

// 新建文件输出流并对它进行缓冲

try {

outBuff = new BufferedOutputStream(new FileOutputStream(

targetFile));

// 缓冲数组

byte[] b = new byte[1024 * 5];

int len;

while ((len = inBuff.read(b)) != -1) {

outBuff.write(b, 0, len);

}

// 刷新此缓冲的输出流

outBuff.flush();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} finally {

// 关闭流

try {

if (inBuff != null)

inBuff.close();

if (outBuff != null)

outBuff.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

public class ByteHelper {

public static byte[] hexStringToBytes(String hexString) {

if (hexString == null

------解决方案--------------------

hexString.equals("")) {

return null;

}

hexString = hexString.toUpperCase();

int length = hexString.length() / 2;

char[] hexChars = hexString.toCharArray();

byte[] d = new byte[length];

for (int i = 0; i 

int pos = i * 2;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

杭电Acm刷题顺序

第一阶段&#xff1a;开始入门吧&#xff01;&#xff08;15天&#xff0c;53题&#xff09; 一&#xff0e;输入输出练习&#xff08;2天&#xff0c;10题&#xff09; 1000、1089—1096、1001 二&#xff0e;简单操作&#xff1a;&#xff08;2—4天&#xff0c;12题&…

[Vue CLI 3] 源码系列之useTaobaoRegistry

通过下列方式可以安装最新版本的 Vue CLI&#xff08;注释&#xff1a;sudo 自行选择&#xff09; sudo npm install -g vue/cli然后通过下列命令创建项目&#xff1a; vue create demo这时候&#xff0c;会询问你是否使用 taobao 的 registry Your connection to the default …

python pcm,python pcm音频添加头转成Wav格式文件的方法

如下所示&#xff1a;add Head Infomation for pcm fileimport sysimport structimport os__author__ bob_hu, hewitt924gmail.com__date__ Dec 19,2011__update__ Dec 19,2011def geneHeadInfo(sampleRate,bits,sampleNum):生成头信息&#xff0c;需要采样率&#xff0c;每…

ajax 页面无刷新

<!-- 使用原生Ajax 和 $.ajax 实现局部刷新的过程 --><!-- 封装通用XMLHttpRequest对象 --><!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>创建XMLHttpRequest</title> <style&…

javascript字符串方法总结

javascript中常用的字符串方法 String 的静态方法 fromCharCode&#xff1a;使用指定的Unicode值序列创建字符串 String.fromCharCode(num1, ..., numN) fromCodePoint: 使用指定的代码点序列创建的字符串 String.fromCharCode(num1, ..., numN) **注意**: 以上两个方法都是S…

php larval开发规范,数据模型 |《 Laravel 项目开发规范 5.5》| Laravel China 社区

本文档最新版为 7.x&#xff0c;旧版本可能放弃维护&#xff0c;推荐阅读最新版&#xff01;放置位置所有的数据模型文件&#xff0c;都 必须 存放在&#xff1a;app/Models/ 文件夹中。命名空间&#xff1a;namespace App\Models;User.phpLaravel 5.1 默认安装会把 User 模型存…

课程总结

大一的我初次学习JAVA&#xff0c;尽管以前也有所了解过但是还是觉得有点难&#xff0c;这个和c语言相似但是又有很多的不同&#xff0c;比如关键字什么的&#xff0c;一个学期下来现在回望真的感觉学到的并不是很多&#xff0c;可能是我上课的时候喜欢分神吧&#xff0c;尽管在…

记录工作中遇到的问题

只要在编程&#xff0c;遇到问题是肯定的&#xff0c;不过经常性遇到弱智的问题可就不太好了。把问题记录下来&#xff0c;提醒自己 问题 主机解析异常&#xff0c;内部多个系统&#xff0c;系统的登录需要从CAS中心得到登录信息&#xff0c;如果失败会提示登录失败。今天一直跳…

php7安装详解_,PHP7 redis扩展安装详解

1、安装redis(1)下载&#xff1a;https://github.com/phpredis/phpredis/tree/php7 或下载http://pan.baidu.com/s/1i5DFrjn用samba挂载导进去(2)yum -y install m4 autoconf # 安装依赖(3)unzip phpredis-php7.zip # 解压(4)cd ./phpredis-php7 # 进入目录(5)phpize #用php…

python之_init_函数的简介

1、每个package中都必须包含一个_init_.py文件除了不需要加载模块的 它方便在外部统一调用&#xff0c;和在内部互相调用&#xff0c;它可以为空&#xff0c;当为空时&#xff0c;作用是将这个文件夹下的内容当作包执行&#xff0c;便于解释器区分执行。 2、定义类的时候&#…

22. Generate Parentheses

题目描述&#xff1a; Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n 3, a solution set is: ["((()))","(()())","(())()","()(())","()()…

php explain type等级,mysql中explain分析sql详解

Explain举例mysql> explain select * from event;—-————-——-——————————————————-| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |—-————-——-——————————————————-| 1 | SIMPL…

es6中的块级作用域

块级作用域 凡是带{}都是块级作用域&#xff0c;if(){} for(){} 对象{} 1.在块级作用域下&#xff0c;var 和function跟在window下一样&#xff0c; function有个特殊的一点&#xff0c;在块级作用域下会提前声明&#xff0c;不会提前定义 2.在块级作用域下 let和const声明的变…

Windows10安装Ubuntu子系统+docker教程说明

说明 微软和Ubuntu深入合作推出了基于win桌面运行Ubuntu系统.为了满足开发同学也在win下也可以使用ubuntu的开发环境.通过利用win上的Linux子系统Ubuntu16.04能否安装docker并正常使用 复制代码 首先在安装Ubuntu应用之前&#xff0c;我们要做一些事情&#xff0c;避免安装和使…

【HDU - 2612】Find a way(bfs)

-->Find a way 直接上Chinese Descriptions: hsj和lsh最近迷上了pokemon go的游戏。在双十一大物期中考试来临之前&#xff0c;他们想抓一只稀有土拨鼠来攒攒人品&#xff08;因为土拨鼠的刷新地点最近来到了哈工程&#xff09;但是由于土拨鼠过于强大&#xff0c;他的雷霆半…

getMeasuredWidth和getWidth的区别

View的getWidth()和getMeasuredWidth()有什么区别吗&#xff1f; View的高宽是由View本身和Parent容器共同决定的。getMeasuredWidth()和getWidth()分别对应于视图绘制的measure和layout阶段。getMeasuredWidth()获取的是View原始的大小&#xff0c;也就是这个View在XML文件中配…

php图片地址参数错误,图片上传时一直显示请求地址错误怎么办

1、出现“请求地址错误”的直接原因&#xff1a;图中$action null2.根本原因&#xff1a;url美化那一节课程&#xff0c;去掉 index.php的.htaccess 文件修改的时候&#xff0c;没有按照老师的来写&#xff0c;所以美化url以后获取不到地址栏参数&#xff0c;导致$action值为n…

C#写的WebServices可运行于树莓派

阅读目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器Raspkate项目演示回到目录Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器 最近在业余时间玩玩树莓派&#xff0c;刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚&#x…

[导入]Ms XmlDom 异步装载Xml文件

Ms XmlDom 异步装载Xml文件文章来源:http://blog.csdn.net/net_lover/archive/2004/07/07/36015.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2004/07/07/816151.html

Django的View(视图)

Django的View&#xff08;视图&#xff09; 一个视图函数&#xff08;类&#xff09;&#xff0c;简称视图&#xff0c;是一个简单的Python 函数&#xff08;类&#xff09;&#xff0c;它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容&#xff0c;一个重定向&am…