创建DB时文件复制错误(Android资产和SQLite)

创建DB时文件复制错误(Android资产和SQLite),android,sqlite,fileoutputstream,android-assets,Android,Sqlite,Fileoutputstream,Android Assets,当在SQLiteOpenHelper类中调用onCreate(SQLiteDatabase)时,我正在将具有SQLite数据库结构的文件从资产复制到我的应用程序文件夹中,但原始文件和复制的文件并不完全相等: (右侧资产文件夹中的原始文件,左侧复制了一个) 如您所见,只有第一个块不同,文件的其余部分完全相同 我的onCreate()方法是: @Override public void onCreate(SQLiteDatabase arg0) { Log.i(TAG, "onCreate

当在
SQLiteOpenHelper
类中调用
onCreate(SQLiteDatabase)
时,我正在将具有SQLite数据库结构的文件从资产复制到我的应用程序文件夹中,但原始文件和复制的文件并不完全相等:

(右侧资产文件夹中的原始文件,左侧复制了一个)

如您所见,只有第一个块不同,文件的其余部分完全相同

我的
onCreate()
方法是:

@Override
public void onCreate(SQLiteDatabase arg0) {
    Log.i(TAG, "onCreate");
    try {
        copyDatabase();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
private void copyDatabase() throws IOException {
    InputStream input = context.getAssets().open(DB_NAME);
    String outFilename = DB_PATH;
    OutputStream output = new FileOutputStream(outFilename);
    byte[] buffer = new byte[1024];
    int mLength;
    while ((mLength = input.read(buffer)) > 0) {
        output.write(buffer, 0, mLength);
    }
    output.flush();
    output.close();
    input.close();
}
copyDatabase()
方法是:

@Override
public void onCreate(SQLiteDatabase arg0) {
    Log.i(TAG, "onCreate");
    try {
        copyDatabase();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
private void copyDatabase() throws IOException {
    InputStream input = context.getAssets().open(DB_NAME);
    String outFilename = DB_PATH;
    OutputStream output = new FileOutputStream(outFilename);
    byte[] buffer = new byte[1024];
    int mLength;
    while ((mLength = input.read(buffer)) > 0) {
        output.write(buffer, 0, mLength);
    }
    output.flush();
    output.close();
    input.close();
}
我不知道为什么我的
copyDatabase()
方法在循环的第一次迭代中不能正常工作


知道吗?

DB\U名称和DB\U路径的值是多少?文件大小是多少?DB_NAME是一个带有数据库名称的字符串,DB_PATH是一个带有数据库文件路径的字符串:
DB_PATH=context.getDatabasePath(DB_NAME).getPath()和两个文件的文件大小完全相同,82.944字节
,正如您所看到的,只有第一个块不同,文件的其余部分完全相同。
????很抱歉我不明白。什么样的程序会显示这个?你应该真正说出这些值。以DB_名称开始。