一、功能描述:
将文件转成二进制数据放入数据库中,需要的时候,便可以取出安装与使用。
二、数据库:
建立一个数据库字段存放转成二进制的图片,这个字段有一个要求就是要设置成blob类型的
CREATE TABLE `save_image` (
`id` int(50) NOT NULL AUTO_INCREMENT,
`images` blob,
PRIMARY KEY (`id`)
)
三、转换文件成为二进制数据并保存的Java代码:
public void save() throws SQLException
{
connection=connectionManager.getconn();//连接数据库的操作,这里自己连接自己的数据库
try {
File file=new File("D:\\1.jpg");//要转换的文件
FileInputStream inputStream=new FileInputStream(file);
String sql="insert into save_image(images) values(?)";//存入数据库的SQL语句在执行的时候一定要用prepareStatement
statement=connection.prepareStatement(sql);
statement.setBinaryStream(1, inputStream,(int)file.length());
statement.executeUpdate();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
四、取出数据并还原文件到本地的java代码:
//读取数据库二进制文件
public void readerJpg() throws SQLException
{
connection=connectionManager.getconn();//自己连接自己的数据库!!!!!!!!
String sqlString="select images from save_image where id=4";//从数据库中读出要还原文件的二进制码,这里我读的是自己的数据库id为4的文件
File file=new File("E:\\1.jpg");//本地生成的文件
if(!file.exists())
{
try {
file.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
byte[] Buffer = new byte[4096*5];
statement=connection.prepareStatement(sqlString);
resultSet = statement.executeQuery();
if(resultSet.next())
{
FileOutputStream outputStream = new FileOutputStream(file);
InputStream iStream = resultSet.getBinaryStream("images");//去字段用getBinaryStream()
int size=0;
while((size=iStream.read(Buffer))!=-1)
{
System.out.println(size);
outputStream.write(Buffer,0,size);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
相关推荐
本文将详细介绍如何将图片转换成二进制存储,并如何从数据库中读取出这些二进制数据。 #### 图片存储为二进制的基本原理 在将图片存储为二进制之前,我们首先需要了解什么是二进制存储。简单来说,任何文件都可以...
综上所述,"上传附件以二进制流的方式到数据库"是一个涉及到多个IT领域技术的实践,包括二进制数据处理、数据库设计与管理、文件上传与下载的实现。通过这种方式,我们可以高效、安全地存储和访问非结构化数据,提高...
在计算机科学中,十六进制(Hexadecimal)是一种常用的数值表示方法,通常用于表示二进制数据,因为十六进制的每一位可以表示四位二进制数,从而简化了数据的表示和处理。在Java编程中,十六进制数据和字符串之间的...
1. **读取图片文件**:使用编程语言(如Java、Python、C#)的内置函数读取图片文件,将其转换为二进制数据流。 2. **连接数据库**:建立与数据库的连接,这通常需要数据库驱动程序(如JDBC、ODBC)和正确的连接参数...
在处理图片时,我们可以使用编程语言如Python的PIL(Python Imaging Library)或Java的ImageIO库来读取图片文件,并将其转换为字节数组,即二进制数据。 例如,在Python中,可以使用以下代码读取图片并转化为二进制...
本示例将探讨如何在Oracle数据库中以二进制格式存储图片,并随后从数据库中取出显示在网页上。Oracle数据库提供了BLOB(Binary Large Object)数据类型,专门用于存储大对象,如图像、音频文件或任何其他二进制数据...
这可能是用来从数据库中取出用户头像的二进制数据,保存到本地文件系统,或者将本地的图像文件转换为二进制数据并存储到数据库中。 总结,使用二进制存取用户头像是为了优化数据库性能和提升用户体验。它涉及到图像...
本文档将详细介绍如何在Java环境下实现图片转换为二进制流存储到数据库中的过程,以及如何从数据库中读取出这些二进制流并将其展示在网页上。主要涉及以下几个方面的内容: 1. **图片转换为二进制流**: 包括通过URL...
本篇文章将详细讲解如何利用栈的数据结构,实现10进制到任意进制(包括但不限于二进制)的转换,并探讨这一过程中的关键知识点。 首先,我们需要理解栈(Stack)这一数据结构。栈是一种后进先出(LIFO,Last In ...
在这个Java实现中,使用了字节流(ByteStream)进行写入操作,这可以确保数据以二进制形式保存,而不是文本格式。 6. **解压缩**:解压时,我们需要从字节流中读取数据,将其转换为二进制串。然后,根据预先构建的...
需要注意的是,Java实现的Huffman压缩解压缩不适用于二进制文件,因为二进制文件的字节分布与ASCII文档不同,直接应用ASCII字符频率统计可能会导致压缩效果不佳。对于二进制文件,通常需要先进行预处理,如使用字节...
- 遍历文本,将每个字符转换为其哈夫曼编码,然后将所有编码连接成一个二进制串,这就是压缩后的数据。 - 为了恢复原始文本,通常会在编码串前添加额外的信息,如编码表或树结构,以便解压时重建哈夫曼树。 5. **...
在Java中,有几种方法可以实现十进制到二进制的转换: 1. 使用`Integer.toBinaryString(int)`方法: 这是Java提供的内置函数,可以直接将整数转换为二进制字符串。例如: ```java int decimalNum = 10; String ...
3. **十进制转换**:将8位二进制转换为十进制,可以使用位运算或者简单的数学计算实现。例如,二进制的“11000000”对应十进制的192。 4. **组合成点分十进制字符串**:将得到的四个十进制数与点号“.”连接起来,...
本文主要探讨了如何将音频文件转换为二进制分包,并存储到Redis这一内存数据库中,从而实现高效的数据管理。Redis作为一个高性能的键值数据库,适合处理大量小数据的快速存取,这在处理音频等多媒体数据时特别有用。...
Java 实现哈夫曼(Huffman)压缩与解压缩是一个重要的数据压缩技术,它基于哈夫曼树(也称为最优二叉树),用于创建高效的数据编码。哈夫曼编码是一种可变长度的前缀编码方法,它根据字符出现频率来为每个字符分配...
1. **BASE64编码**:BASE64是一种用于将二进制数据转换为ASCII字符串的编码方式。它通过将每3个8位字节的数据转换为4个6位的字符,以确保所有标准ASCII字符集的字符都能被表示。在图片处理中,BASE64编码常用来将...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
对于每个字符,我们找到其对应的哈夫曼编码,并将其转换为二进制序列。 5. **解码数据**:解码时,我们需要保持哈夫曼树结构不变。从根节点开始,根据二进制序列中的每一位,选择左或右子节点,直到到达叶子节点,...
5. **编码与解码**:编码阶段,读取文件的每一个字符,根据编码表将字符转换为二进制序列并写入压缩文件。解码阶段,读取压缩文件中的二进制序列,根据编码表恢复出原始字符。 6. **位操作**:在处理二进制序列时,...