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
 
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+)
 
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?
 
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:
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 ...
 
Zurück