1. Andro-medanebel, 10.02.2012 #1
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Eine XML-Datei aus dem Internet soll lokal gespeichert
    und dann die lokale Datei genutzt werden.
    Der XML-Parser benötigt dann als Parameter
    den Namen der lokalen Datei als String.

    Mein bisheriger Versuch (try/catch hier aus
    Lesbarkeitsgründen weggelassen):

    Code:
    //Datei aus Internet lokal speichern:
    FileOutputStream fos = null;
    fos = openFileOutput("http://www.irgendwas.com/info.xml, Context.MODE_PRIVATE); //Laufzeitfehler
    fos.close();
    
    //aus Internet eingelesene, jetzt lokale Datei öffnen
    FileInputStream fis = null;
    fis = openFileInput(info.xml);
    
    //Ich habe nur einen FileInputStream, brauche aber
    //Namen der lokalen Datei als String als Übergabewert:
    
    //StartXMLParser(Name_der_lokalen_Datei_als_String);
    
    fis.close();
    
    //So sieht Parser aus:
    public boolean StartXMLParser(String sURL)
    {
     ...
     URL url = new URL(sURL);
     InputStream inputstream = url.openStream();
     xmlreader.parse(new InputSource(inputstream));
     ...
    }
    
     
  2. swordi, 10.02.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    ja und wo ist das problem ? fehlermeldungen ? oder sollen wir einfach nur den code bewundern ? :D
     
  3. Andro-medanebel, 10.02.2012 #3
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Laufzeitfehler bei:
    fos = openFileOutput("http://www.irgendwas.com/info.xml, Context.MODE_PRIVATE);

    Wie bekomme ich Namen der lokalen Datei als String zurück,
    damit ich den String dem Parser übergeben kann?
     
  4. Kranki, 10.02.2012 #4
    Kranki

    Kranki Ehrenmitglied

    In Zukunft wäre es hilfreich, wenn du einen Log-Auszug mit der Exception und genauen Fehlermeldung posten würdest.

    In diesem Fall macht das nichts, weil dein Problem schlicht daran liegt, dass du nicht weißt, was openFileOutput eigentlich macht.
    http://developer.android.com/reference/android/content/Context.html#openFileOutput%28java.lang.String,%20int%29
    Das dient nicht zum Download, sondern dazu, in lokale Dateien zu schreiben. Als lokalen Dateinamen fütterst du der Funktion aber eine URL, was dann natürlich nicht geht.
    Die Lösung für dein Problem ist also, dir selber einen Dateinamen festzulegen und den tatsächlichen Download zu implementieren. Oder nur den Download zu implementieren und die Datei gar nicht zu speichern, je nach Verwendungszweck und Größe dieser XML.
     

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. xml lokal speichern

    ,
  2. android daten in xml speichern