2012-03-14 9 views
0

USER_DETAILS 테이블 (USER_ID varchar, USER_NAME varchar, USER_INFO BLOB)을 사용하여 sqlite에 db를 만들었습니다. 파일을 생성하여 바이트 배열로 변환하고 blob로 저장하려고했습니다. db와 테이블은 생성되었지만 값은 생성되지 않았습니다. 내 코드는 다음과 같습니다 BLOB 데이터를 테이블에 삽입하는 방법에 대한 지침이 있습니까?Blob 데이터로 SQLite 데이터베이스에 텍스트 파일 삽입

파일 만들기 :`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 방법 : 07 : 07.674 : 내가 BYTEARRAY

03-14 (17)를 생성 할 때

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(); 

내가 아래 예외가/System.err에 (WARN 613) : java.io.IOException : 장치에 공간이 없습니다. 03-14 17 : 07 : 07.694 : WARN/System.err (613) : org.apache.harmony.luni.platform.OSFileSystem.write (Native 방법)

,

03-14 17 : 07 : 경고/System.err에 (613) : $ dalvik.system.BlockGuard WrappedFileSystem.write (BlockGuard.java:171)에서

03-14 07.704 17시 7분 : 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 메서드의 두 번째 매개 변수는 실제로 입력 파일을 출력 파일 이름과 연결하는 데 사용 하시겠습니까? ?

오류를 모두 수정 한 다음 문제가 계속 발생하면 질문을 수정하십시오.

관련 문제