Android --- ¿Cómo resolver el problema de que los archivos de la base de datos bajo datos/datos/nombre del paquete/bases de datos/ no se pueden empaquetar juntos al empaquetar APK?

en realidad es muy simple

Colocamos el archivo de base de datos preparado en el directorio de activos del proyecto, que es la ruta que se puede empaquetar, y luego copiamos el archivo de base de datos en activos a datos/datos/nombre del paquete/bases de datos/. El siguiente es el código principal:

private static final String DB_NAME = "abc.db"; // 数据库名
private static final String DATA_BASE_PATH = "/data/data/com.abc/databases/";
private static final int BUFFER_SIZE = 9000; // 根据数据库文件大小扩大

private void copyfile() {
    
    
	File dir = new File(DATA_BASE_PATH);
	if (!dir.exists()) {
    
    
		dir.mkdirs();
	}
	File file = new File(DATA_BASE_PATH + DB_NAME);
	if (!file.exists()) {
    
    
		InputStream inputStream = null;
		OutputStream outputStream = null;
		try {
    
    
			inputStream = mContext.getAssets().open(DB_NAME);
			outputStream = new FileOutputStream(file);
			byte[] buffer = new byte[BUFFER_SIZE];
			int length;
			while ((length = inputStream.read(buffer, 0, buffer.length)) > 0) {
    
    
				outputStream.write(buffer, 0, length);
			}
			outputStream.flush();
		} catch (Exception e) {
    
    
			e.printStackTrace();
		} finally {
    
    
			if (inputStream != null) {
    
    
				try {
    
    
					inputStream.close();
				} catch (IOException e) {
    
    
					e.printStackTrace();
				}
			}
			if (outputStream != null) {
    
    
				try {
    
    
					outputStream.close();
				} catch (IOException e) {
    
    
					e.printStackTrace();
				}
			}
		}
	}
}

Supongo que te gusta

Origin blog.csdn.net/qq_43290288/article/details/130283302
Recomendado
Clasificación