Me estoy volviendo loco, creé un objeto de archivo, por lo que se puede leer con ObjectInputStream y coloqué la carpeta de activos. El método funciona con un archivo más pequeño que 1M y da error con archivos más grandes. He leído que es un límite de la plataforma Android, pero también sé que se puede evitar "fácilmente". Aquellos que han descargado el juego Reging Thunder, por ejemplo, pueden ver fácilmente que en su carpeta de activos hay un archivo de 18.9M de ancho. Este es mi código de lectura 1 objeto de una ObjecInputStreamCargar archivos mayores a 1M desde la carpeta de activos
File f = File.createTempFile("mytempfile", "dat");
FileOutputStream fos = new FileOutputStream(f);
InputStream is = mc.getAssets().open(path,3);
ObjectInputStream ois=new ObjectInputStream(is);
byte[] data = (byte[]) ois.readObject();
fos.write(data);
fos.flush();
fos.close();
ois.close();
is.close();
ahora tengo un archivo sin comprimir y puedo usarlo sin tener que preocuparse por el error "Este archivo no se puede abrir como un descriptor de archivo, es probable comprimido "
Esta función funciona bien con archivos menores a 1M, con archivos más grandes devuelve java.io.IOException en la línea" ObjectInputStream ois = new ObjectInputStream (is); "
¿por qué?
gracias por su respuesta. Pero, ¿qué tipo de herramienta usa para cortar su db grande en cada fragmento más pequeño? – anticafe
Intenté algunos programas gratuitos listos, luego escribió otro. :) Es una pieza de 20 líneas en C. C. –
en Linux y Mac. Hay una herramienta de línea de comandos llamada división. – mclin