我使用表USER_DETAILS(USER_ID varchar,USER_NAME varchar,USER_INFO blob)在sqlite中创建了一个数据库。我尝试创建一个文件,将其转换为byteArray并将其作为blob存储在表中.db和表得到了创造但不是价值观。这是我的代码。有人可以指导如何将blob数据插入表中吗?
create file:`String fileNameDb = fileName + mTextDocNo ++;
FileOutputStream fis = (FileOutputStream) openFileOutput(
fileNameDb, Context.MODE_PRIVATE);
System.out.println("Create File " + fis);
byte[] textFileArray = new byte[1024];
int i = 0;
while (i < textFileArray.length) {
fis.write(textFileArray);
}
System.out.println("Created the byteArray " + textFileArray);
ObjectOutputStream oos = new ObjectOutputStream(fis);
oos.writeChars(inputData);
System.out.println("Calling the createNoteMethod------------>>>");
mDbHelper.createNote(fileNameDb, inputData + fileNameDb,
textFileArray);
oos.flush();
oos.close();
fis.close();
插入stmt方法:
stmt = mDb.compileStatement("INSERT INTO USER_DETAILS VALUES(?,?,?)");
stmt.bindString(1, user_id);
stmt.bindString(2, user_name);
stmt.bindBlob(3, user_info);
stmt.executeInsert();
当我尝试创建byteArray
时,我得到以下异常03-14 17:07:07.674:WARN / System.err(613):java.io.IOException:设备上没有剩余空间 03-14 17:07:07.694:WARN / System.err(613):at org.apache.harmony.luni.platform.OSFileSystem.write(Native Method)
03-14 17:07:07.704:WARN / System.err(613):at dalvik.system.BlockGuard $ WrappedFileSystem.write(BlockGuard.java:171)
03-14 17:07:07.704:WARN / System.err(613):at java.io.FileOutputStream.write(FileOutputStream.java:300)
03-14 17:07:07.715:WARN / System.err(613):at java.io.FileOutputStream.write(FileOutputStream.java:256)
03-14 17:07:07.715:WARN / System.err(613):at com.example.FileSharing.FileSharingActivity.createFile(FileSharingActivity.java:51)
答案 0 :(得分:0)
您的代码存在 许多 问题:
fis
)ObjectOutputStream
,将其链接到。{1}}
FileOutputStream
并写出一些随机对象
您的代码示例中未显示定义。mDbHelper
方法的第二个参数,你真的
打算将输入对象与输出文件名连接?修复所有这些错误,然后在您遇到问题后编辑问题。