请帮助,我是新的Android我不知道很多基础知识。 IM使用此代码将我的powerpoint文件存储为BLOB。但是当我跑这个。数据库甚至不会显示任何文件名作为列表。如何正确存储blob而不使用DBHELPER。因为我开始没有使用DBHELPER而且我已经离我的项目很远了。只是想通过这个项目。
String filename = FilesInFolder.get(position);
FileInputStream fis = new FileInputStream("/sdcard/" + filename);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer =new byte[1024];
int read;
while ((read = fis.read(buffer)) != -1) {
baos.write(buffer, 0, read);
}
baos.flush();
byte[] fileByteArray = baos.toByteArray();
notesDB.execSQL("INSERT INTO " +
PPT_TABLE_NAME + " (pptName,pptFile)" +
" Values ('"+filename+"','"+fileByteArray+"');");
这就是我编写数据库的方式
notesDB.execSQL("CREATE TABLE IF NOT EXISTS " +
PPT_TABLE_NAME +
" ( " + BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,pptName VARCHAR,pptFile BLOB);");
这就是我尝试将其视为列表的方式
Cursor c = notesDB.rawQuery("SELECT * FROM " +
PPT_TABLE_NAME, null);
if (c != null ) {
if (c.moveToFirst()) {
do {
String pptid = c.getString(c.getColumnIndex(BaseColumns._ID.toString()));
String pptname = c.getString(c.getColumnIndex("pptName"));
results.add(pptid + " " + pptname);
}while (c.moveToNext());
}
}
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,results));
请帮助我仍然是新的Android ..
答案 0 :(得分:1)
您不能轻易地将字节数组直接插入字符串中。
要插入blob,您应该使用可以处理字节数组的函数,例如insert method:
ContentValues cv = new ContentValues();
cv.put("pptName", filename);
cv.put("pptFile", fileByteArray);
notesDB.insert(PPT_TABLE_NAME, null, cv);