Java 将文本文件作为Blob数据插入SQLite数据库
我在sqlite中创建了一个数据库,其中包含一个表USER\u DETAILS(USER\u ID varchar、USER\u NAME varchar、USER\u INFO blob)。我尝试创建一个文件,将其转换为byteArray并将其作为blob存储在表中。创建了数据库和表,但没有创建值。这是我的代码。有人可以指导如何将blob数据插入表中吗 创建文件:`String fileNameDb=fileName+mTextDocNo++Java 将文本文件作为Blob数据插入SQLite数据库,java,android,Java,Android,我在sqlite中创建了一个数据库,其中包含一个表USER\u DETAILS(USER\u ID varchar、USER\u NAME varchar、USER\u INFO blob)。我尝试创建一个文件,将其转换为byteArray并将其作为blob存储在表中。创建了数据库和表,但没有创建值。这是我的代码。有人可以指导如何将blob数据插入表中吗 创建文件:`String fileNameDb=fileName+mTextDocNo++ FileOutputStream
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();
当我尝试创建byteArray时,会出现以下异常
03-14 17:07:07.674:WARN/System.err(613):java.io.IOException:设备上没有剩余空间
03-14
17:07:07.694:WARN/System.err(613):位于org.apache.harmony.luni.platform.OSFileSystem.write(本机方法)
03-14 17:07:07.704:WARN/System.err(613):位于dalvik.System.BlockGuard$WrappedFileSystem.write(BlockGuard.java:171)
03-14 17:07:07.704:WARN/System.err(613):位于java.io.FileOutputStream.write(FileOutputStream.java:300)
03-14 17:07:07.715:WARN/System.err(613):位于java.io.FileOutputStream.write(FileOutputStream.java:256)
03-14 17:07:07.715:WARN/System.err(613):在com.example.FileSharing.FileSharingActivity.createFile(FileSharingActivity.java:51)您的代码有很多问题:
- 您正在打开文件输出流,但变量名为
误导性(
)fis
- 然后将一个空数组写入该流,1024次
- 然后创建一个
,将其链接到ObjectOutputStream
并写出 代码示例中未显示的定义FileOutputStream
- 在关闭流之前调用一个方法,这是一个 潜在的错误,尤其是如果你是(我敢打赌),重新打开 方法中的流,并对其执行操作
- 您的
方法的第二个参数,您真的这样做了吗 是否打算将输入对象与输出文件名连接起来mDbHelper
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();