iPhone开发中,很多时候要用到播放声音,但是直接将声音放入工程中势必造成Resources中文件太多,这样就需要将声音存入SQLite3数据库。以下为代码:
public class WriteVoice2DB {
public void WriteVoice2DB() {
System.out.println("Create WriteVoice2DB instance!");
}
public static void main(String[] args) {
try {
WriteVoice2DB wvdb = new WriteVoice2DB();
wvdb.savabinay();
} catch (Exception e) {
e.printStackTrace();
}
}
public void savabinay() throws rdeSQLiteException {
rdeSqlite3DB database = new rdeSqlite3DB();
database.open("Spanish_voice1.dat");
database.ExecSQL("CREATE TABLE voice_binary_table('id' CHAR(30) PRIMARY KEY, 'filename' CHAR(30), 'audioBinary' blob)");
//read the file stream
byte[] dataArray = {};
try {
File f = new File("C:/Documents and Settings/liu/My Documents/My Music/waiting.wav");
dataArray = read2list(f);
System.out.println(dataArray.length);
//save in DB
StringBuffer sb = new StringBuffer();
String insertSql = "INSERT INTO voice_binary_table(id,audioBinary) VALUES(?,?);";
Object[] parims = new Object[2];
parims[0] = new String(f.getName());
parims[1] = dataArray;
database.ExecSQL(insertSql, sb, parims);
System.out.println("the tail is " + sb.toString());
database.ExecSQL(insertSql);
} catch (Exception e) {
e.printStackTrace();
}
database.close();
System.out.println("SaveBinary Successful!");
}
public byte[] read2list(File file) throws IOException {
InputStream is = null;
byte[] buf = null;
int bufLen = 20000*1024;
try {
is = new BufferedInputStream(new FileInputStream(file));
buf = new byte[bufLen];
byte[] tmp = null;
int len = 0;
ArrayList data = new ArrayList(24);
while ((len = is.read(buf, 0, bufLen)) != -1) {
tmp = new byte[len];
System.arraycopy(buf, 0, tmp, 0, len);
data.add(tmp);
}
len = 0;
if (data.size() == 1)
return (byte[])data.get(0);
for (int i = 0; i < data.size(); i++) {
tmp = (byte[])data.get(i);
System.arraycopy(tmp, 0, buf, len, tmp.length);
len += tmp.length;
}
} finally {
if (is != null) {
try {
is.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
return buf;
}
}
分享到:
相关推荐
//本文主要介绍了android通过jxl去读excel的内容,然后存入sqlite3数据库表,需要用到jxl的jar包和sqlite 的jar包,图片是excel的数据格式,需要的朋友可以参考下
根据需求建立数据库,建立了两个表,并保证了可以将数据存储到已有的数据库中,代码如下: import sqlite3 def createDataBase(): cn = sqlite3.connect('check.db') cn.execute('''CREATE TABLE IF NOT EXISTS TB_...
在两种环境下(windows、Linux),对csv文件存入数据库的详解
sqlite存储数据库类,sqlite是离线免安装的轻量型数据库,特别适合客户端本地存储,只需引用.dll,即可正常使用。
使用Android原生gps定位的例子 每个几秒订一次 并将定位的经纬度和当前时间等信息写入数据库
主要介绍了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法,涉及Python针对txt文件的读取及sqlite3数据库的创建、插入、查询等相关操作技巧,需要的朋友可以参考下
程序会把这些信息存入access_table,access_column表中以供参考 3、如果access库中 自增长的字段autoId不是为主键,而name字段为主键 在sqlite中,如果字段为自增长,则必须为主键,碰到这种情况,程序是这样处理的...
如标题所示,包含最常用英文单词数据,适合词典类应用等
C++代码,使用了Sqlite3作为简单的数据库,加密使用了MD5和Base64(含有实现)。一个简单的的密码本示例程序。没有界面,只有命令行。仅供参考,交流学习使用!
基于Python的SQLite数据库存储.pdf
代码实现的功能主要是手机中SQLite数据库中的用户的注册与查询。
从eko网关的9005端口通过socket获取xml数据,存入本地数据库中,涉及xml解析,sqlite3数据库,socket编程等。
wpf sqlite 导入导出excel
详见代码注释 需要自己微调,目前签到信息存入本地SQLite数据库中了
自定义对象保存到SQLite数据库中功能,并且还可以进行查找读取功能,而且支持对SQLite的操作用了FMDB类库功能等,希望大家可以下载学习看看。
本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法。分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 ...