Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

265
Views
Estudio de Android, File.properties eliminado después de volver a abrir la aplicación

Guardé un File.properties en this.getFilesDir() + "Data.propertie" . En la aplicación, guardo los datos que escribió el usuario, pero cuando abro la aplicación, todos los datos (o el archivo) que guardé de la vez anterior se han eliminado.

Ejemplo:

 // Store for (Map.Entry<String,String> entry : MainActivity.Notes.entrySet()) { // Put all data from Notes in properties to store later properties.put(entry.getKey(), entry.getValue()); } try { properties.store(new FileOutputStream(this.getFilesDir() + "data.properties"), null); } // Store the data catch (IOException e) { e.printStackTrace(); } // Error exception // Load the map Properties properties = new Properties(); // Crate properties object to store the data try { properties.load(new FileInputStream(this.getFilesDir() + "data.proprties")); } // Try to load the map from the file catch (IOException e) { e.printStackTrace(); } // Error exception for (String key : properties.stringPropertyNames()) { Notes.put(key, properties.get(key).toString()); // Put all data from properties in the Notes map } // Can load the data

Puede ver que guardé los datos en el archivo y puedo cargarlos, pero cuando abro la aplicación, los datos se han eliminado.

¿Hay alguna manera de escribir en el archivo y guardar los datos que escribo la próxima vez que abra la aplicación?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En primer lugar, Context.getFilesDir devuelve un objeto de File . Este File representa el directorio de datos privados de su aplicación.

Luego haces getFilesDir() + "foo" que llamará implícitamente toString() en la instancia del File .File.toString() es equivalente a File.getPath , que no necesariamente devuelve una barra diagonal final.

Esto significa que, si getFilesDir() devuelve un File en /data/app , su archivo de propiedades se convertirá en /data/appdata.properties que no está en su carpeta de datos y no se puede escribir en él.

En cambio, para obtener un File dentro de un directorio, puede crear una nueva instancia de File con ese directorio. p.ej:

 File propertiesFile = new File(this.getFilesDir(), "data.properties"); // use propertiesFile for FileOutputStream/FileInputStream etc.

Esto asegura que su archivo de propiedades esté dentro de ese directorio y evita cualquier problema con los separadores de archivos.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!