Textdate Speichern

M

MBPower

Fortgeschrittenes Mitglied
11
Hallo @all
Seit ein paar Tagen versuche ich mich in der Programmierung für Android.
Jetzt habe ich ein Problem beim speichern von Dateien.
Das speichern der Datei test.txt funtkioniert mit dem folgenden Code ohne Probleme, aber leider ist das Verzeichnis und auch die dort enthaltene Datei test.txt nach einiger Zeit nicht mehr erreichbar. Auch wenn ich die sdcard bereitstelle, dann sehe ich das Verzeichnis, aber ich kann das Verzeichnis nicht mehr öffnen.
Ich habe leider keine Ahnung, wann das ganze passiert und ich kann nicht mal sagen, ob mein Programm damit zu tun hat. Das laden uns speichern der Datei funtkioniert ohne Probleme. Ich habe das Gefühl, dass es passiert, wenn das Programm nicht geöffnet ist. Es kann aber auch sein, dass es erst nach XX Stunden oder am nächsten Tag passiert.
Womit kann das zu tun haben?
Ist es vielleich falsch bei jedem speichern immer wieder mit file.mkdir(); das Verzeichnis zu erstellen, obwohl es schon vorhanden ist?
Wenn jemand eine Idee hat, dann wäre ich sehr dankbar.

Code:
public void save () {
        try {
            File root = Environment.getExternalStorageDirectory();
            if (root.canWrite()){
                File file = new File("/sdcard//test");
                file.mkdir();
                File testfile = new File("sdcard/test/test.txt");
                FileWriter testwriter = new FileWriter(testfile);
                BufferedWriter out = new BufferedWriter(testwriter);
                out.write(txtAll.getText().toString());
                out.close();
            }
        } catch (IOException e) {
            AlertDialog(e.getMessage());
        }
    }
Vielleicht kann mir jemand auch nicht die folgenden Fragen beantworten.
Kann man eigentlich auch direkt ins Programmverzeichnis speichern und nur ggf. zum Export auf die sdcard?
Ich habe versucht wie folgt zu speichern, aber leider darf ich die Datei nicht erstellen.

Code:
 File testfile = new File("test.txt");
Warum kann ich die Datei dort nicht erstellen, oder benötigt man dafür auch ein uses-permission? Wo ist eigentlich das Programmverzeichnis?

Für jede Hilfe wäre ich sehr dankbar.
 
Zuletzt bearbeitet:
Hallo, inzwischen benötigt man eine Permission, um die SD zu benutzen.
android.permission-group.STORAGE

LG
 
Auf SD schreiben ist ja auch nicht das Problem gewesen und die permission zum schreiben auf die SD musste ich natürlich vorher eintragen.
Meine beiden Probleme sind.
1. Wie kann ich auf den Internen Speicher schreiben, wo auch das Programm liegt? (in meinem 1. Posting etwas mehr beschrieben)
2. Was passiert nach einiger Zeit mit meinem erstellten Verzeichnis auf der SD? (in meinem 1. Posting etwas mehr beschrieben)
 
Zuletzt bearbeitet:
Zu 1.: Da solltest du dich mal zu Shared Preferences bzw. SQLite Databases und am besten im Zusammenhang damit Content Providern belesen... Files in's Programmverzeichnis schreiben kannst du nicht, wäre auch blöd, da der Programmspeicher sowieso schon viel zu begrenzt ist... Wenn du nur kleine Daten, z.B. Einstellungen oder den Status der GUI speichern willst solltest du wohl zu Shared Preferences greifen, bei längeren und vor allem mehreren Texten würde ich zur SQLite Database raten... Files sind nicht gerade die eleganteste Lösung ;)

Was mit deinem Textfile passiert, tja, keine Ahnung, entweder deine SD-Karte hat 'ne Macke oder du rufst irgendwo ausversehen was zum aufräumen oder überschreiben des Files (z.B. deine save-Methode ohne vorher das File eingelesen zu haben ;)) auf...

Wobei ich mich wundere, dass dein Code funktioniert, zumindest insofern der Ordner myDog noch nicht besteht - du erstellst nämlich einen anderen Ordner als den, wo du das TextFile speicherst ;) Sieht aber wohl eher nach 'nem Fehler beim Code kopieren als nach der Ursache deines Problems aus - siehe die zwei /s
 
@Compufreak
Ja, es war ein Fehler beim kopieren, habe ich aber gerade im Posting korrigiert.
In eine Datei speichern war für den Anfang nur ein Versuch, damit ich mal einen Einstig bekomme.
SQLite Database werde ich mir mal anschauen.
Danke Dir.
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.051
jogimuc
J
A
Antworten
10
Aufrufe
1.926
swa00
swa00
H
Antworten
2
Aufrufe
1.311
Hcman
H
Zurück
Oben Unten