Zeilen in Textdateien anhängen über FileOutputStream

  • 2 Antworten
  • Letztes Antwortdatum
S

Schirmi136

Neues Mitglied
0
Hallo zusammen :smile:

Im Rahmen eines Schulprojektes erstelle ich eine Passwort-App, bei der man seine Passwörter in eine Textdatei speichert. Damit beim Anlegen eines neuen Passwortes dieses einfach unten an die Datei drangehängt wird, habe ich es mit folgendem Code versucht:

Code:
FileOutputStream fos = new FileOutputStream("pwdata.txt", true);
neuespw = neuespw_eingabe.getText().toString();
fos.write(neuespw.getBytes());
fos.close();
Leider stürzt die App recht kommentarlos ab, sobald ich diesen Schritt versuche auszuführen. Was kann man da machen?

Über folgenden Code funktioniert es zwar, allerdings sehe ich dort keine Möglichkeit, den Text unten dranzuhängen:

Code:
FileOutputStream fos = openFileOutput("pwdata.txt", Context.MODE_PRIVATE);
neuespw = neuespw_eingabe.getText().toString();
fos.write(neuespw.getBytes());
fos.close()
Dazu hätte ich noch die Frage, wo diese Datei, die ich zwar speichern und aus ihr lesen kann, überhaupt angelegt wird - ich kann sie partout nicht entdecken :/

Vielen Dank im Voraus!
Schirmi136

EDIT: Die erste Frage hat sich schon geklärt, war ein ziemlich doofer Fehler, musste nur auf MODE_APPEND umstellen. Bleibt trotzdem die Frage nach dem Speicherort der Textdatei - wenn ich einen konkreten Pfad angebe stürzt das Programm ab, auch ohne in die Catch-Anweisung zu gehen. Weiß da jemand weiter?
 
Zuletzt bearbeitet:
die datei wird unter

/data/data/DEIN_PACKAGE/files

abgelegt werden
 
Wenn ich mich richtig ausdrücke:

Die Apps werden in /data/app/ gespeichert. Und die Benutzerdaten werden in /data/data/ gespeichert.
Mit "Context.MODE_PRIVATE" hast du Schreibrechte in /data/data/Package_Name_Deiner_App.
Deswegen löst die erste Version eine Exception (Guck sie dir an).
Zu Hilfe guck dir die APIs SharedPreferences an und ich empfehle es dir zu nutzen, wenn es schon da ist anstatt deinen eigenen Kram zu implementieren B-)
SharedPreferences speichert die daten im Form einer XML-Dokument unter data/data/shared_prefs/

Allerdings der Internespeicher ist nur für gerootete Geräte sichtbar und Emulator :)

Hoffe ich könnte Helfen.

Grüße + viel Erfolg

Der ursprüngliche Beitrag von 16:26 Uhr wurde um 16:34 Uhr ergänzt:

wenn ich einen konkreten Pfad angebe stürzt das Programm ab, auch ohne in die Catch-Anweisung zu gehen

Wie sieht denn den Pfad aus?

Wie gesagt, du kannst nicht so einfach im Internenspeicher irgendwas irgendwo speichern.

Poste mal den Fehler hier, dann kann man vielleicht mehr Helfen.
 
Zuletzt bearbeitet:
Zurück
Oben Unten