XML-Datei laden

  • Hallo zusammen,
    ich würde gerne eine XML Datei in meiner App verwenden. Hierfür möchte ich diese XML über einen BufferedInputStream laden (Habe aber auch schon FileInputStream probiert). Passend hierfür gibt es eine Methode, die meinem XML-Parser einen BufferedInputStream übergeben soll. Mein Problem ist, dass ich beim Laden der XML-Datei eine FileNotFoundException bekomme: EACCES (Permission denied). Mein Code mit einigen "Diagnose-Toast" steht unten.

    Ich habe bereits:
    - Gecheckt, dass im Manifest die Berechtigung WRITE_EXTERNAL_STORAGE steht
    - Die Dateien über den ADM auf das Image geschoben
    - Hierbei sowohl das /storage Verzeichnis als auch das /sdcard Verzeichnis probiert
    - Den Dateipfad wahlweise als String oder als File übergeben


    Wäre super, wenn jemand sieht wo mein Fehler liegt!

  • Java
    File file = new File("/sdcard/Iteration_1.xml");

    Bitte unterlass' so etwas.
    Du weißt nicht, ob die externe Speicherkarte dort gemounted ist. Eventuell liegt die auch unter /emulated/0/sdcard oder sonstwo.


    Einfach so aus dem geschützten Bereich der App heraus auf das Dateisystem zuzugreifen, wird meines Wissens mit genau diesem Fehler quittiert.


    Nimm für sowas getExternalFilesDir(String);.

    Java
    File externalAppDirectory = context.getExternalFilesDir(null);
    File file = new File(externalAppDirectory, "Iteration_1.xml");

    Und immer daran denken: Es gibt Geräte ohne externe Speicherkarte. Da muss es dann getFilesDir(String) sein.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!