Eliminación de archivos creados con FileOutputStream
Estoy desarrollando para la plataforma Android.
Mi aplicación crea un archivo temporal con una simple llamada a:
FileOutputStream fos = openFileOutput("MY_TEMP.TXT", Mode);
Funciona bien porque puedo escribirle y leerlo normalmente.
- Libgdx ScrollPane - ¿No se desplaza?
- Android: Permiso denegado para / data / local / tmp / *
- Android camera: Fallo en la entrega del resultado ResultInfo {who = null, request = 0, result = -1, data = null} a la actividad
- Eclipse da error al usar GaussianBlur con OpenCV para Android
- Retrato para teléfono, paisaje para Tablet (Android-Layout)
El problema es que cuando salgo de la aplicación quiero eliminar este archivo. Solía:
File f = new File(System.getProperty("user.dir"), "MY_TEMP.TXT"); f.delete()
Pero siempre devuelve false y el archivo no se elimina.
Yo he tratado:
File f = new File("MY_TEMP.TXT"); f.delete();
Y tampoco funciona.
- Entero aleatorio: Android
- Xamarin y APK Firma - Cambiar ruta a JarSigner
- Frecuencia de actualización de Android GPS
- Fuga de memoria de Android: InputMethodManager, mapa de bits
- Android Libro similar a Effective Java (Joshua Bloch)
- OnDraw eficiente con mapas de bits y aceleración por hardware
- Android: Interrumpir el hilo contenido en un método
- Error en la generación de Gradle en Android Studio
He comprobado en esta publicación y la mejor manera de eliminar un archivo creado a partir de FileOutputStream es una simple llamada desde el método de contexto deleteFile (TEMP_FILE) tan simple como eso.
No se puede eliminar un archivo abierto. Debe cerrar el flujo antes de eliminarlo.
fos.close(); f.delete();
Dicho esto, preferiría usar File#createTempFile()
para permitir que la plataforma subyacente haga el trabajo de limpieza automática y evitar posibles problemas de portabilidad causados por el uso de rutas relativas en el File
.
Debe cerrar el archivo antes de eliminarlo. Use debajo del código.
FileOutputStream fos = openFileOutput("MY_TEMP.TXT",Mode); File f = new File(System.getProperty("user.dir"),"MY_TEMP.TXT"); fos.close(); File f = new File("MY_TEMP.TXT"); f.delete();
Compruebe de nuevo, si la secuencia está cerrada antes de intentar eliminar el archivo.
Usted tiene algunas respuestas sólidas ya, pero sólo quiero mencionar File.deleteOnExit()
que programa un archivo para la eliminación cuando la máquina virtual sale.
–editar–
Todavía debe cerrar los flujos conectados al archivo.
- ¿Cómo diferenciar entre pulsación de tecla larga y tecla normal?
- Cómo inclinar un diseño en android?