Archivos en la SD Card
Gente que tal, por si alguno necesitara trabajar con archivos en la SD Card, esto les podría servir:
private FileConnection fc;
public void crearArchivo(String name) throws IOException {
fc= (FileConnection) Connector.open(path + name,Connector.READ_WRITE);
if(!fc.exists()) {
fc.create();
}
else{
...
}
}
public void borrarArchivo(String name) throws IOException {
fc= (FileConnection) Connector.open(path + name,Connector.READ_WRITE);
if(fc.exists()) {
fc.delete();
}
else{
...
}
}
public void modificaArchivo(String name, byte[] data) throws IOException{
fc= (FileConnection) Connector.open(path + name,Connector.READ_WRITE);
if(fc.exists()) {
borrarArchivo(name);
crearArchivo(name);
OutputStream out = fc.openOutputStream();
out.write(data);
out.close();
}
else{
...
}
}
Obviamente la lógica y el path pueden cambiar. Espero les ayude en algo,
Slds!
Juan Carlos
- Inicie sesión o regístrese para enviar comentarios
- 687 lecturas

Que acceso seria mas rapido SD CARD ó RMS.
Eso quiere decir que se puede persistir datos en la memoria SD, has probado hacerlo de ser asi que tan rapido es este acceso R/W, sera mas rapido que al RMS. Gracias de antemano.
Debe depender bastante de la
Debe depender bastante de la velocidad de acceso a la tarjeta y la velocidad de grabación de la tarjeta, pero generalmente guardar en el equipo es mucho mas rápido.
Si quieres grabar tu
Si quieres grabar tu información en la tarjeta SD por necesidad, lo que podrías hacer para mejorar el rendimiento, es que guardes tu información en la memoria del equipo, y creas un Thread en j2me que se encargue de pasar de la memoria del equipo a la tarjeta SD los datos, mientras tu aplicacion movil esta haciendo otras cosas
Pero estarías creando un hilo
Pero estarías creando un hilo adicional, que gestionaría el grabado en el equipo, el pase a la memoria SD y el borrado posterior el equipo. No se estaría aumentando la complejidad? Me parece que no amerita.
Te pongo este ejenplo, si
Te pongo este ejenplo, si estas tomando varias fotos, seria mas rapido grabarlas en memoria del equipo para luego pasarlas al sd card, para que el usuario no este esperando por demasiado tiempo la grabacion de las fotos, asi pueda continuar con el flujo del programa, si solo va a grabar un solo archivo en el sd-card no hay problema pero si va a transferir muchos archivos en el sd-card mejor seria ver otras alternativas, recuerda que el usuario no tiene la misma paciencia que tu para programar, el quiere terminar rapido su trabajo
Primero deberia medirse si la
Primero deberia medirse si la demora es significativa como para grabar 2 veces, teniendo en cuenta que tendremos que crear un hilo que va a disminuir la performance del aplicativo. Imagina que estas tomando una foto, se graba en el equipo, deseas tomar otra foto mientras por detras el equipo esta guardando en la tarjeta, y borrando la original mientras intentas grabar una tercera foto. Aumenta la complejidad, pues debes tener cuidado de no borrar y grabar a la vez. Es mejor un proceso limpio, en mi opinion, que dos procesos en paralelo que pueden colisionar entre si.
HP; No he podido probar con
HP;
No he podido probar con cantidad de datos, te invito hacerlo con el código adjunto y entiendo que si has realizado pruebas con RMS por ende indicarnos como te va y comentárnoslo.
Slds!
Juan Carlos
Es necesario contar con algun
Es necesario contar con algun permiso adicional para poder usarlo? No necesita firma, no?
No he necesitado firmar la
No he necesitado firmar la aplicación, me ha funcionado sin permiso alguno. Pero por decir, si jalaran la información de la unidad, p.e. el número del equipo, donde si necesitas si ó si firmar la aplicación, necesitarás asumo poner los permisos javax.microedition.io.Connector.file.read y el de escritura también.
Slds!
Juan Carlos
Respuesta
En el caso que le pongas algun tipo de permiso, necesitará necesariamente una firma. Adicional a esto tendrias que verificar si la SD es compatible con el equipo.
Slds,
EP
Enrique. Hay permisos, como
Enrique. Hay permisos, como los del CustomerCare, que requieren firma de forma mandatoria. Es decir, si incluyes ese permiso y no lo firmas, se mostraran problemas con los permisos y el aplicativo no podra ejecutarse en el equipo. Pero hay otros permisos, como para la foto, que te piden autorizacion para ejecutarlo. Es engorroso tener que dar autorizacion cada vez que lo uses, pero el app funciona y puedes modificarlo cuantas veces quieras en desarrollo sin tener que realizar la firma.
Con respecto al SD, hay nuevas versiones, como el SDHC y el SDXC, que son incompatibles con equipos con el estandar SD original.