2012-03-14 13 views
0

テーブルUSER_DETAILS(USER_ID varchar、USER_NAME varchar、USER_INFO BLOB)を使用してsqliteにdbを作成しました。ファイルを作成してbyteArrayに変換し、BLOBとして保存しようとしましたdbとテーブルは作成されましたが、値は作成されませんでした。ここに私のコードです。テーブルにBLOBデータを挿入する方法について、誰かがplガイドを持つことができますか?テキストファイルをBlobデータとしてSQLiteデータベースに挿入します

作成ファイル: `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方法:07:07.674:

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の

3月14日17を作成してみたとき、私は以下の例外を取得(/をSystem.errに警告613):java.io.IOException:デバイスに空きがありません 03-14 17:07:07.694:WARN/System.err(613):org.apache.harmony.luni.platform.OSFileSystem.write(ネイティブ方法)

3月14日17:07:07.704:/をSystem.err(613)WARN:dalvik.system.BlockGuard $ WrappedFileSystem.write(BlockGuard.java:171)

3月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):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)

答えて

0

あなたはあなたのコードで多く問題を抱えて:あなたはその後、これに外に空の配列を作成しますが、ファイル出力ストリームを開いているが、あなたの変数名は誤解を招く (fis

  • ある

    • をストリーム、1024倍
    • ObjectOutputStreamを作成し、 FileOutputStreamにチェーンして、 の定義を持ついくつかのランダムオブジェクトを書き出します。コードサンプルには表示されません。
    • ストリームを閉じる前にメソッドを呼び出すと、 の可能性のあるバグです(特に、推測した場合)、メソッドのストリームが再び開き、操作が実行されます。
    • mDbHelperメソッドの2番目のパラメータは、実際に 出力ファイル名と入力オブジェクトを連結するつもりでしたか?

    これらのエラーをすべて修正し、それでも問題が解決しない場合は、質問を編集してください。

  • 関連する問題