繁体   English   中英

将文本文件作为Blob数据插入SQLite数据库

[英]Insert a Text file as Blob data into SQLite Database

我在sqlite中使用表USER_DETAILS(USER_ID varchar,USER_NAME varchar,USER_INFO blob)创建了一个db。我尝试创建一个文件,将其转换为byteArray并将其作为blob存储在表中.db和表已创建但未创建价值。 这是我的代码。有人可以指导如何将Blob数据插入表吗?

创建文件:`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):组织中没有剩余空间。 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):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):位于com.example.FileSharing.FileSharingActivity.createFile(FileSharingActivity.java:51)

您的代码有很多问题:

  • 您正在打开文件输出流,但变量名具有误导性( fis
  • 然后,将空数组写出到该流中,执行1024次
  • 然后,您创建一个ObjectOutputStream ,将其链接到FileOutputStream并写出一些随机对象,该对象的定义未在代码示例中显示。
  • 您在关闭流之前调用方法,这是一个潜在的错误,尤其是在您(我猜是),重新打开方法中的流并对它们执行操作的情况下。
  • mDbHelper方法的第二个参数,您是否真的打算将输入对象与输出文件名连接起来?

修复所有这些错误,然后再编辑问题是否仍然存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM