Los archivos se almacenan en el dispositivo en una ubicación específica, dependiente de la aplicación, que es lo que supongo openFileInput
añade al principio del nombre de archivo. El resultado final (ubicación + nombre del archivo) se construye como sigue:
/data/data/<application-package>/files/<file-name>
Tenga en cuenta también que la documentación indica que el parámetro openFileInput
cannot contain path separators.
Para evitar la codificación forzada de la ruta de ubicación, que en principio podría ser diferente de un dispositivo a otro, puede obtener un objeto File
apuntando al directorio de almacenamiento llamando al getFilesDir
, y usarlo para leer cualquier archivo que desee a. Por ejemplo:
File filesDir = getFilesDir();
Scanner input = new Scanner(new File(filesDir, filename));
Tenga en cuenta que la construcción de un Scanner
pasando un String
como parámetro resultaría en el escáner trabajando en el contenido de la cadena, es decir, interpretándolo como el contenido real para escanear en lugar de como el nombre de un archivo para abrir
gracias !! utilicé el constructor equivocado al principio: P .. intenté usar Scanner sc = new Scanner (nuevo archivo (nombre de archivo)); pero no funcionó ... File filesDir = getFilesDir(); Entrada de escáner = nuevo escáner (nuevo archivo (directorio de archivos, nombre de archivo)); esto funciona muy bien: D – zSt