|
||
|
![]() |
![]() |
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
|
![]() |
![]() |
||||||
|