Objekt in bestimmten Pfad auf Android-gerät speichern

Spaceman85

Mitglied
Hallo,

wie speicher ich ein Objekt unter einen bestimmten Pfad?
Ich erhalte immer eine FileNotFoundException.

Hat es vieleicht mit der angabe des Speicherpfades zu tun?

Code:
FileOutputStream file;
		try {
			file = new FileOutputStream("/Documents/"+fileName);
			ObjectOutputStream oas = new ObjectOutputStream(file);
			oas.writeObject(automaton);
			oas.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println(e.toString());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

Danke
Spaceman85
 

genodeftest

Erfahrenes Mitglied
Hi
1. überprüfe, ob du Schreibrechte in diesem Verzeichnis hast
2. erstelle die Datei, bevor du Daten da rein schreibst.

Für die JavaSE würde ich dazu File.createNewFile() verwenden (Java 6) oder java.nio.file.Files (verschiedene Methoden, Java 7+)
 

Spaceman85

Mitglied
File erstele ich ist nur nicht im obigen Code zu erkennen, aber erhalte keinen Zugriff

java.io.IOException: open failed: EACCES (Permission denied)

Wie bekomme ich shcreibrechte bzw kann ich in den internen Speicher schreiben?
 

javaDeveloper2011

Erfahrenes Mitglied
Hallo Spaceman85,

Hast du
XML:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
in der Manifest.xml?

Du kannst nur in Verzeichnisse auf der sdcard schreiben, den Pfad dahin musst du aber angeben:
Java:
new FileOutputStream(Environment.getExtermalStorageDirectory() + "/Documents/" + fileName);

Außerdem werden Order bei android afaik nicht automatisch angelegt, gibt es 'Documents' schon?
ansonsten:
Java:
new File(Environment.getExtermalStorageDirectory() + "/Documents").mkdir();
vor "new FileOutputStream..."

Zum Debuggen wirst du das gerät wahrscheinlich per USB verbunden haben.?
Währenddessen ist die sdcard sowieso beim pc eingehängt und kann nicht von Apps benutzt werden!
Also zuerst ausstecken, etwas warten und dann den Prozess, der auf die sdcard zugreift starten.

Hoffe, das hilft dir,
javaDeveloeper2011
 
Zuletzt bearbeitet von einem Moderator:

Crash123

Erfahrenes Mitglied
Da nicht erledigt geb ich auch mal nen Tipp ...
wenn dein Device am Rechner als Slave (also als externe Festplatte) hängt
kann keine App auf die SD-Karte zugreifen ...
 

Neue Beiträge