1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Textdate Speichern

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MBPower, 26.02.2010.

  1. MBPower, 26.02.2010 #1
    MBPower

    MBPower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    149
    Erhaltene Danke:
    9
    Registriert seit:
    26.02.2010
    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: 27.02.2010
  2. SeraphimSerapis, 27.02.2010 #2
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
    Hallo, inzwischen benötigt man eine Permission, um die SD zu benutzen.
    android.permission-group.STORAGE

    LG
     
  3. MBPower, 27.02.2010 #3
    MBPower

    MBPower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    149
    Erhaltene Danke:
    9
    Registriert seit:
    26.02.2010
    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: 27.02.2010
  4. Compufreak, 27.02.2010 #4
    Compufreak

    Compufreak Android-Experte

    Beiträge:
    464
    Erhaltene Danke:
    59
    Registriert seit:
    11.07.2009
    Phone:
    Motorola Milestone
    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
     
  5. MBPower, 27.02.2010 #5
    MBPower

    MBPower Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    149
    Erhaltene Danke:
    9
    Registriert seit:
    26.02.2010
    @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.
     

Diese Seite empfehlen