XML-Datei aus Internet lokal speichern und verarbeiten

A

Andro-medanebel

Neues Mitglied
0
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));
 ...
}
 
ja und wo ist das problem ? fehlermeldungen ? oder sollen wir einfach nur den code bewundern ? :D
 
swordi schrieb:
ja und wo ist das problem ? fehlermeldungen ? oder sollen wir einfach nur den code bewundern ? :D

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?
 
Andro-medanebel schrieb:
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?

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.
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.016
jogimuc
J
A
Antworten
10
Aufrufe
1.869
swa00
swa00
S
Antworten
33
Aufrufe
2.541
Sempervivum
S
Zurück
Oben Unten