Android を使用している場合は、構築済みの SQLiteDatabase と SQLiteOpenHelper を利用できます。必要な情報はすべてここにあります。
すべてを解析した後、 Fileを使用して、必要な方法で CSV にエクスポートできます。
EDIT: So basically what you need to do is to parse the bytes by reading them and that way have access to the content. In some cases you don't even need to convert them to a String, since could be that you only need the value of the byte. (ie.: Offset: 44 Length:4 Description:The schema format number. Supported schema formats are 1, 2, 3, and 4.).
You can always check if your values are correct with any HEX editor, even opening the sqlite file with a text editor of any kind would help.
Let's start from scratch. First, reading the file. Two approaches
- a. Read the whole file and parse it after
- b. Read and parse the whole file in blocks (recommended, specially for bigger files)
Both approaches would share most of the following code:
File file = new File("YOUR FILE ROUTE");
int len = 1024 * 512; //512KB
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e1) {
fis = null;
e1.printStackTrace();
}
byte[] b = new byte[len];
int bread;
try {
while((bread = fis.read(b, 0, len))!=-1)
{
if(parseBlock(b, bread)==1)
return;
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
違いは、部分的なブロックを取得してオンザフライで解析すること (これはうまくいくと思います) と、全体を取得することは次のようにすることです。
fis.read(b, 0, fis.available);
while ループの代わりに。
最終的にあなたのアプローチは正しいです。それがバイトを文字列に入れる方法です。(新しい文字列(b))。さらに、最初の文字は奇妙な記号を表している可能性が高く、SQL のファイル形式を見ると、これらはメタデータを格納するために予約されているバイトです。任意のテキスト エディタで sqlite ファイルを開き、そこに表示される内容がコードから得られる内容と一致することを確認します。