- 浏览: 209186 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
上官车月:
13shu 写道 有何高见?
getServletContext()接口解析(收藏) -
13shu:
getServletContext()接口解析(收藏)
数据库(MySql、oracle等)使用Blob数据类型存储图像,java (1.6)现在支持bmp,jpg, wbmp, png, gif格式的图像。
1从数据库中Blob转为java程序中的Image类实体:
java.sql.Blob blob = rs.getBlob("Logo");
InputStream fin = blob.getBinaryStream();
Image im = javax.imageio.ImageIO.read(fin);
2从数据库中Blob转存为硬盘中的图像文件:
java.sql.Blob blob = rs.getBlob("Logo");
InputStream fin = blob.getBinaryStream();
//用文件模拟输出流
File file = new File("d:\\output.gif");
OutputStream fout = new FileOutputStream(file);
//将BLOB数据写入文件
byte[] b = new byte[1024];
int len = 0;
while ((len = fin.read(b)) != -1) {
fout.write(b, 0, len);
}
3将磁盘中图像文件存入数据库的BLOB字段中(使用Bytes):
FileInputStream fis = new FileInputStream(“D:\\logo.gif”);
byte[] b = new byte[65000];//限制图像体积小于65KB
fis.read(b);
rs.updateBytes("Logo", b);
将Bytes数组转为Image:
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytearray));
4将磁盘中文件转为java程序中的Image类实体
Image image = Toolkit.getDefaultToolkit().getImage("D:\\logo.gif");
或
Image image = javax.imageio.ImageIO.read(new FileInputStream("D:\\logo.gif"));
5将java程序中的Image类实体转为磁盘中文件
Image image;
.......
BufferedImage bufferedImage = (BufferedImage) image;
try {
ImageIO.write(bufferedImage, "PNG", new File("d:\\yourImageName.PNG"));//输出到 png文件
ImageIO.write(bufferedImage, "JPEG", new File("d:\\yourImageName.JPG"));//输出到 jpg文件
ImageIO.write(bufferedImage, "gif", new File("d:\\yourImageName.GIF"));//输出到 gif文件
ImageIO.write(bufferedImage, "BMP", new File("d:\\yourImageName.BMP"));//输出到 bmp文件
} catch (IOException e) {
e.printStackTrace();
}
6将java程序中的Image类实体转为Byte数值后,存入数据库Blob字段中:
首先将Image实体转为BufferedImage,可以参考网上的程序,如 http://www.a3gs.com/BookViews.asp?InfoID=3111&classID=953&InfoType=0
Image image;.......
BufferedImage bi=Converter.toBufferedImage(image);
ByteArrayOutputStream baos=new ByteArrayOutputStream(1024);
ImageIO.write(bi, "jpg", baos);
baos.flush();
String base64String=Base64.encode(baos.toByteArray());
baos.close();
byte[] b = Base64.decode(base64String);
rs.updateBytes("Logo", b);
7得到屏幕中的图像:
robot = new Robot();
BufferedImage bimage = robot.createScreenCapture(new Rectangle(0, 0, 100, 100));
Image image=bimage;
发表评论
-
apache http日志文件按天生成
2014-06-18 20:10 3538Linux系统配置方法: 将其改为 ErrorLog & ... -
Java各种文件下载处理
2013-05-07 13:19 1156public HttpServletResponse do ... -
Java读取Properties文件
2013-01-31 15:31 1048/** * * * @ ... -
判断当前时间是否在限制时间段之内
2013-01-30 19:06 4636/** * 判断当前时间是否在限制时间段之内(是: ... -
Ubuntu 手动安装jdk6
2013-01-17 19:04 11281. 手动安装jdk6 首先, ... -
[Java]读取文件方法大全
2012-12-20 19:59 8871、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内 ... -
Java获取请求客户端的真实IP地址
2012-12-14 17:34 1312通常通过request.getRemoteAddr() 取得客 ... -
Tomcat远程调试
2012-11-22 16:25 940第一步、配置远程tomcat 1、在windows系统中: ... -
项目中整体上中文乱码
2012-11-01 15:40 1140搞一个S2SH项目,在运行时整体上项目中文在IE浏览器 ... -
Lucene 教程
2012-10-15 09:41 923Lucene是apache组织的一个用jav ... -
native2ascii 工具使用
2012-08-31 15:39 984native2ascii.exe 是Java ... -
struts2 upload
2012-08-29 12:46 982所需架包: commons-fileupload-1.2.1 ... -
Axis2 教程
2012-08-28 10:01 1070来源:http://itemdetail.iteye.co ... -
个人学习收集
2012-08-14 14:59 864JAVA编程思想[第四版].pdf ssh学习笔记 ... -
weblogic session丢失
2012-08-06 19:54 3785在处理app为多服务时,iframe跨域存在sess ... -
iframe跨域session丢失
2012-07-04 16:12 1743问题根源: IE6/IE7支持的P3P(Platfo ... -
注册Tomcat服务为系统服务
2012-06-20 16:51 8187将解压版的Tomcat服务注册为系统服务之后,就不用 ... -
eclipse调试时鼠标移动到变量上不显示值的问题
2012-06-20 09:01 1597今天同事问一问题,就说在eclipse中调试时,鼠标移动到 ... -
Publishing failed with multiple errors 异常
2012-06-06 16:17 22314Publishing failed with multiple ... -
Js获取当前日期时间及其它操作
2012-06-06 14:29 1111Js获取当前日期时间 ...
相关推荐
关于乱码的问题,这是因为字节流操作时并不会考虑字符编码的问题,如果源文件使用的编码和读取时指定的编码不一致,就会导致乱码。而字符流在读取时会根据指定的编码来转换字节,因此在处理文本文件时,通常推荐使用...
4. **流操作与加密**:在Java中,可以使用BufferedInputStream和BufferedOutputStream来提高读写效率,并结合Cipher类(Java的加密/解密接口)进行数据加密和解密。通过CipherInputStream和CipherOutputStream,可以...
首先,我们需要理解的是,将图片存储到数据库中通常采用的方法是将图片转换为二进制数据流。这是因为数据库系统更善于处理结构化数据,而不是像图片这样的非结构化数据。在Java中,我们可以使用`java.io`和`java.nio...
在Java代码层面,该软件可能采用了面向对象的设计思想,通过类和对象来封装图片管理的各种功能,如图片的添加、删除、查看、搜索等。可能包括以下核心组件: 1. 图片存储模块:这部分可能使用数据结构如ArrayList或...
- 字节流:以字节为单位进行输入输出操作,适用于处理二进制文件(如音频、视频、图片)。 - 字符流:以字符为单位进行输入输出操作,适用于处理文本文件。 - **按处理效率**:分为节点流(低级流)和包装流(高级...
字符流则专为处理字符数据设计,它基于字节流,但考虑到不同文件可能采用不同的字符编码,因此字符流在读取时会参考特定的字符编码表,如ASCII、UTF-8等,以提高处理文本的效率。字符流包括Reader和Writer两个抽象...
- `FileInputStream`和`FileOutputStream`是字节流中处理文件操作的类,用于读写二进制文件,如图片、音频等非文本文件。 - `DataInputStream`和`DataOutputStream`则提供了对基本数据类型的读写支持,比如读写int...
字节流是以字节(8位)为基本单位处理数据,主要由`InputStream`和`OutputStream`两个抽象基类代表,它们及其子类如`FileInputStream`和`FileOutputStream`用于处理二进制数据,如图片、音频文件或非文本文件。...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
4. **接收端**:服务器端接收到数据后,会按照相同的规则重组数据,将接收到的字节流写入到本地文件,恢复原始的图片或文件。在接收过程中,可能会有错误检测和重传机制,以处理网络中断或数据丢失的情况。 5. **...
3. **字节流传输**:由于文件可能是任意字节的组合,因此文件传输通常使用字节流。Socket提供InputStream和OutputStream,它们都是基于字节的。客户端可以将FileInputStream中的字节流通过Socket的OutputStream传递...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
总的来说,这个实习涵盖了Java中基本的文件操作技术,包括文件和目录的管理,字符流和字节流的使用,以及如何利用缓冲提高性能。这些知识对于理解和编写Java应用程序至关重要,尤其是在处理大量数据或者需要持久化...
字节流适用于处理任何类型的二进制数据,如图片、音频文件等。 字符流处理的是Unicode字符,处理单元为2个字节,主要由`Reader`和`Writer`两个抽象基类构成。字符流在处理文本数据时更为方便,因为它能自动处理字符...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
- **InputStream**: 用于读取字节流,例如从文件或网络连接中读取图片数据。 - **OutputStream**: 用于写入字节流,例如将图片数据写入到响应体或文件中。 - **BufferedInputStream/BufferedOutputStream**: 提供...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...