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

Datei schreiben / auslesen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von r4w, 11.03.2011.

  1. r4w, 11.03.2011 #1
    r4w

    r4w Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    0
    Registriert seit:
    07.09.2010
    Phone:
    HTC Desire
    Hallo zusammen,

    ich beschäftige mich seit ein paar Tagen mit Java/Android Entwicklung und bin dabei eine kleine TestApp zu schreiben um etwas herumzuprobieren und dadurch zu lernen.

    Nach Hello World hab ich mich drangemacht einen Wert auf einem Textfeld in eine Datei in den internen Telefonspeicher mittels FileOutputStream zu schreiben und die Daten über FileInputStream wieder einzulesen /auszugeben.


    Code:
    String FILENAME = "vtsave.txt";
            String string = eingabe.toString();
    
            FileOutputStream fos;
            try {
                fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
                try {
                    fos.write(string.getBytes());
                    bgr_feld.setText("Datei in " + FILENAME + " erfolgreich gespeichert!");
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    fos.close();                                
                } catch (IOException e) { 
                    e.printStackTrace();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    
    Beim Auslesen bleibt mein fstream leider immer leer (null).. komme einfach nicht auf den Fehler.

    Code:
    String FILENAME = "vtsave.txt";
    FileInputStream fstream = null;
            
            try {
                fstream = new FileInputStream(FILENAME);
            } catch (Exception FileNotFoundException){ 
                 laden_feld.setText("Datei nicht gefunden!");    }
            
            try {
                int ausgabe = fstream.read();
                laden_feld.setText((char)ausgabe);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
    Wiegesagt, ich bin Neuling und bitte schonmal um Verzeihung falls es sehr offensichtlich ist ;) Wäre allerdings um Hilfe sehr dankbar! ;)

    Ich hoffe jemand ist so nett, mir etwas unter die Arme zu greifen .. :)

    Update: FileExplorerhab ich gefunden, und die Datei vtsave.txt wurde auch gespeichert. Allerdings habe ich immernoch keinen Erfolg beim Auslesen.

    LG r4w
     
    Zuletzt bearbeitet: 11.03.2011
  2. muck, 11.03.2011 #2
    muck

    muck Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    7
    Registriert seit:
    07.11.2010
    Benutz Du Eclipse? Da kannst Du den FileExplorer einblenden.
     
  3. r4w, 11.03.2011 #3
    r4w

    r4w Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    0
    Registriert seit:
    07.09.2010
    Phone:
    HTC Desire
    Ja, ich nutze Eclipse.. Wusste nicht das es einen File Explorer gibt, danke.

    Update: FileExplorerhab ich gefunden, und die Datei vtsave.txt wurde auch gespeichert. Allerdings habe ich immernoch keinen Erfolg beim Auslesen.
     
    Zuletzt bearbeitet: 11.03.2011
  4. ko5tik, 11.03.2011 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Mach doch:
    Code:
    context.openFileInput(fileName)
    
     
  5. r4w, 11.03.2011 #5
    r4w

    r4w Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    0
    Registriert seit:
    07.09.2010
    Phone:
    HTC Desire
    Hat mich auch nicht weitergebracht.. gab ne Fehlermeldung in Eclipse.
    Code:
    Cannot make a static reference to the non-static method openFileInput(String) from the type Context
    Ich möchte nur gerne den Inhalt (Zeilenweise oder komplett) aus einer (text)-Datei lesen... finde meinen Fehler nicht :(

    Hat jemand vielleicht ne Lösung oder ein paar CodeSchnipsel? ;)
     
  6. muck, 11.03.2011 #6
    muck

    muck Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    7
    Registriert seit:
    07.11.2010
    Du ließt nur ein Byte aus und Dein Cast dürfte so auch nicht funktionieren. Zu den versch. Arten Files einzulesen gibt es min. 100.000 Artikel im Netz.

    Ein Möglichkeit wäre zeichenweise in ein StringBuffer zu lesen.
    Wie man es macht kommt immer drauf an wie die Datei aussieht und was ich im Anschluß mit machen will.
    Code:
    //Schreiben
    String string = "Hallo";
    try {
     FileOutputStream out = openFileOutput("test.txt", MODE_PRIVATE);
     
     out.write(string.getBytes());
     out.close();
     
    } catch (FileNotFoundException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
     
    //lesen
    int ausgabe;
    StringBuffer strInhalt = new StringBuffer("");
    try {
     FileInputStream in = openFileInput("test.txt");
     
     while( (ausgabe = in.read()) != -1)
      strInhalt.append((char)ausgabe);
     
    } catch (FileNotFoundException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
    
    http://openbook.galileocomputing.de/javainsel/
     
  7. r4w, 11.03.2011 #7
    r4w

    r4w Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    0
    Registriert seit:
    07.09.2010
    Phone:
    HTC Desire
    Danke für deine Antwort, muck!

    Komme noch oft durcheinander, aber Übung macht ja bekanntlich den Meister..

    Werde deinen Code nachher mal ausprobieren zuhause!



    Sent from my HTC Desire using Tapatalk
     
  8. SuNRiZe, 21.04.2012 #8
    SuNRiZe

    SuNRiZe Junior Mitglied

    Beiträge:
    41
    Erhaltene Danke:
    0
    Registriert seit:
    13.02.2012
    Tablet:
    Asus Transformer Pad TF300
    Jap das Agenda Widget ist ja schon von Anfang an auf dem Handy und Minimalistic Text hab ich :)

    Gesendet von meinem GT-N7000 mit Tapatalk 2
     

Diese Seite empfehlen