Android 图片以字节流方式存入本地数据库 怎么弄 求高手指点啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 图片以字节流方式存入本地数据库 怎么弄 求高手指点啊相关的知识,希望对你有一定的参考价值。

自己是新手没存过数据库 贴上代码能帮我指点下吗
@Override
protected void onPostExecute(Bitmap result)
dbHelper = new DownIconSqliteHelper(context, null);
final Bitmap photo = result;
if (result != null)
BitmapDrawable bd = new BitmapDrawable(context.getResources(), result);
imageview.setBackgroundDrawable(bd);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
byte[] b = stream.toByteArray();
// 将图片流以字符串形式存储下来
String tp = new String(Base64Coder.encodeLines(b));



现在tp是转成字符串来 如何存入数据库

少年,数据库有个类型是blob,可以用这个类型存储,直接存储字节,步骤:
1.假设图片字段名Image,那么设置Image为blob字段
2.代码中将bimageview转换为字节以后,用ContentValues中的values.put("Image",byte[]);然后或者是插入,或者是更新,用android的sqlite3中的操作就可以了
如果你看上面的后半部分不太懂,可以百度一下:android sqlite3 的增删改查,就会看到里面有具体的步骤了,就是利用ContentValues进行sql语句处理追问

那如果用Sdcard 存储呐 怎么弄

追答

要把图片转移到SD卡上??直接就往SD卡上写数据啊,用流。。。。

参考技术A 数据库里有个字段是存大字段的,可以存2进制的。追问

能不能用代码讲下 上面是我贴出来的代码 现在tp是转成字符串来 如何存入数据库 数据库也建好了。。。。

追答

我是说有种类型是可以直接存取二进制数据流的,就跟你存字符串一样,哪怕你字段也一样,ok。取出来的时候用BitmapFactory.decodebyarry()或者类似的函数取出来为图片,ok?

追问

什么类型 能说清楚点吗 只要能存 都可以 能贴些代码我看看嘛 拜托了

追答

你是学生吗?

追问

是啊

追答

blob类型。

存byte数组进去,读的时候这样:

/**
@ param byte 你的字节数组
@param offset 你写0,就是数组的起始位置
@param length 数组的大小
*/
Bitmap bitmap = BitmapFactory.decodeByteArray(byte,0,byte.length)

如果你还是不明白,你就好好看看基础的东西。

在IOS中将字节流转换为PDF、html、css文件

【中文标题】在IOS中将字节流转换为PDF、html、css文件【英文标题】:Convert Byte stream into PDF, html, css files in IOS 【发布时间】:2012-04-10 07:59:51 【问题描述】:

使用 .NET Web 服务,它以字节流(表数据)的形式向我发送响应,这些是 HTML、PDF、CSS、JS、PNG 等文件。我已建立 URL 连接并尝试将 NSData 保存在本地路径中:

NSString *writeableDBPath = [DOCUMENTS_FOLDER stringByAppendingPathComponent:@"test.pdf"];
[[NSFileManager defaultManager] createFileAtPath:writeableDBPath  contents:webData attributes:nil]; 

当我尝试访问 test.pdf 时,它会抛出错误“test.pdf 无法打开”,当我通过提供实际路径而不使用 Web 服务来尝试相同的代码时,我能够访问 PDF。

提前致谢!

【问题讨论】:

你尝试过什么,你在哪里卡住了?不要什么都不说,也不要特别说什么……否则没有人会帮助你。 NSString *writeableDBPath = [DOCUMENTS_FOLDER stringByAppendingPathComponent:@"test.pdf"]; [[NSFileManager defaultManager] createFileAtPath:writeableDBPath 内容:webData 属性:nil];我已经设置了 URL 连接,然后我正在尝试保存 NSData。当我尝试从 Libray 访问该 pdf 时,我收到错误 test.pdf 无法打开。当我尝试通过从我的磁盘中提供实际的 PDF 文件来做同样的事情时,我能够下载和访问那个特定的 PDF。由于 Web 服务响应是字节流,我被困在如何转换为 PDF 等。 使用此信息编辑您的问题并正确格式化。 已编辑问题,您对此有任何解决方案吗?如果是这样,请告诉我。 请在您的代码部分添加代码格式(每行代码缩进四个空格)。您的代码中有许多未知数。你能验证你得到的数据吗?您能否验证文件是否正确保存? “在不使用 Web 服务的情况下给出实际路径”是什么意思? 【参考方案1】:

能够解决此问题。文件从 Web 服务发送时已损坏。

【讨论】:

以上是关于Android 图片以字节流方式存入本地数据库 怎么弄 求高手指点啊的主要内容,如果未能解决你的问题,请参考以下文章

用java分别以字节流和文本流方式实现文件的读写操作(先向test1.txt文件中写“各位同学:

Java字节流-从文件输入,输出到文件

序列化简介

Android 图片存入系统相册更新显示实例详解

Android之本地缓存——LruCache(内存缓存)与DiskLruCache(硬盘缓存)统一框架

在IOS中将字节流转换为PDF、html、css文件