私はsqliteでデータベースを設計しています。このガイドに従って、3つの要素(id、text、blob data)を持つテーブルへのdbアクセスを行いました。bolbはバイトの配列ですが、残念ながら次のコードを使用すると次のようになります。
long insertId = database.insert(MySQLiteHelper.TABLE_COMMENTS, null, values);
insertId
常に-1を返しますが、理解できないエラーがあります。
テーブルはこれです:
private static final String DATABASE_CREATE = "create table "
+ TABLE_COMMENTS + "(" + COLUMN_ID
+ " integer primary key autoincrement, " + COLUMN_COMMENT
+ " text not null,"+ MOVE + "blob" + ");";
ファイル内のtxtファイルをテーブルに挿入されるblobバイトとして変換できるアルゴリズムは次のとおりです:(txt-> byte [] array-> blob)
public byte[] ConvertByte ()
{
byte[] b = new byte[1024];
int bytesRead =0;
byte[] dataToSave = null;
ByteArrayOutputStream bos = null;
try {
InputStream is = new FileInputStream(FileName);
bos = new ByteArrayOutputStream();
while ((bytesRead = is.read(b)) != -1) {
bos.write(b, 0, bytesRead);
}
byte[] bytes = bos.toByteArray();
dataToSave = Base64.encode(bytes, Base64.DEFAULT);
} catch (IOException e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
return dataToSave;
}