|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
copiar bd a paquete de la aplicacion
Hola, soy un poco pesado pero....
En mi aplicacion hago una copia de seguridad de una base de datos interna y la guardo en la sd. Tengo una base de datos como copia de seguridad creada en la sd. Todo ok. Ahora quiero restaurar esa base de datos a la aplicacion de nuevo, como lo hago? |
|
|
|
#2
|
||||
|
||||
|
El directorio interno de tu aplicación lo puedes sacar con el método getFilesDir() en la Activity.
A partir de ahí, para copiar un fichero a ese directorio pues lo típico, creando un InputStream sobre el fichero de origen y un OutputStream sobre el fichero de destino e ir leyendo los bytes de uno y copiarlo en el otro. |
|
#3
|
||||
|
||||
|
Tal cual te lo comenta kriogeN. Has de tener la base de datos interna abierta e ir copiando la de SD sobre la interna. Te dejo un código que usé en un pequeño programa que hice de BD:
Código:
private void copyDataBase(String path) throws IOException
{
File file = new File(path, DB_NAME);
InputStream inputStr = mContext.getAssets().open(DB_NAME + ".DB");
OutputStream outStr = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int length;
try{
while ((length = inputStr.read(buffer)) > 0)
{
try{
outStr.write(buffer, 0, length);
}catch (IndexOutOfBoundsException e){
show("copyDataBase: Error while reading the array");
}
}
}finally{
outStr.flush();
outStr.close();
inputStr.close();
}
}
El parámetro path de los argumentos es el destino dónde se encuentra la base de datos interna, en mi caso era: /data/data/nombre_del_paquete/databases que es dónde se guardan las BD por defecto. Luego un simple input-output stream para ir copiando una sobre otra. Espero te sirva. Un saludo. |
|
#4
|
||||
|
||||
|
Ya lo consegui, muchisimas gracias
|
![]() |
Estás aquí
|
||||||
|
||||||