Android Einbindung von externen Dateien in Eclipse Projekt

GGK_01

Bekanntes Mitglied
Hallo,

ich lesen Daten aus einer Datei ein ("sdcard/Android/Titles.txt") ein.
Wie kann ich diese Datei in mein Eclipse Porjekt packen, so dass diese auch beim Export in der apk verfügbar ist?

Danke und LG
GGK
 
Du gehst im aktuellen Projekt auf:

--> File
--> Import
--> FileSystem auswählen...
---> Pfad im obersten Textfeld eingeben... (evtl. weitere Einstellungen vornehmen)
OK!

wenn du jetzt das Projekt als .jar exportierst, müsste die Datei enthalten sein...

hoffe ich konnte helfen!
 
Nicht ganz. Du musst das File das Verzeichnis res/raw geben und kannst es dann von dort auslesen. Siehe dazu auch die Doku.

So wird es auch vom Google Build Tool das im Hintergrund von Eclipse läuft in's APK gepackt.
 
Hallo,

danke für Eure Tipps...aber ganz komm ich damit nicht klar. Mir ist noch sehr unklar, wo in Android die Dateien abgelegt werden und wie ich diese auch über meinen Code auch ansprechen kann.

Ich habe die Dateien nun in Eclipse importiert, der Zugriff auf diese Daten bleibt mir jedoch verwehrt (laut Doku kann ich im res/raw nur Dateien ablegen, nicht in diese wiederum Daten schreiben):

LogCat: FileNotFoundException

Die Files liegen im obersten Verzeichnis meines Android Packages (gleiche Ebene wie die AndroidManifest.xml).
Java:
File file = new File("Titles.txt");
	    FileReader freader = new FileReader(file);
	    BufferedReader reader = new BufferedReader(freader);
		String line;
		while ((line = reader.readLine()) != null) {
			Log.i(TAG,line);
			items.add(line);
		}
		freader.close();

Ich kann die Datei nur über "sdcard/Android/Titles.txt" ansprechen...aber das bringt mir für andere Installationen nichts.

Danke

GGK
 
Zuletzt bearbeitet:
laut Doku kann ich im res/raw nur Dateien ablegen, nicht in diese wiederum Daten schreiben
Stimmt, du hast auch nur vom Lesen geschrieben ;-)

Am saubersten wäre es IMHO so:
- Du gibst ein Default-File im RAW-Ordner mit. Dieses File sollte so klein wie möglich sein und nur dazu dienen die kleinste funktionierende Möglichkeit des Files darzustellen.
- Beim ersten Start der Applikation packst du dieses File auf die SD-Karte. Falls es keine SD-Karte gibt, packst du es in den Internal Storage. Dann merkst du dir noch in deinen App-Preferences wohin du es gepackt hast.
- Auf dieses File führst du dann deine Operationen aus.

Dann erschlägst du gleich 2 Fliegen mit einer Klappe:
- Du hast dein File
- Du belegst nicht unnötig Platz im kostbaren Internal Storage.

Eine andere Möglichkeit wäre natürlich auch anstatt des Default-Files alles in eine Klasse zu packen und die dann als Vorlage zu verwenden. Das macht das resultierende APK wieder ein wenig kleiner, könnte aber - je nach dem wie die Daten aussehen - Updates etwas aufwendiger machen.
 
OK...so könnte ich das machen.

kannst du mir noch sagen, wie ich die Dateien anspreche, die ich über den Eclipse Import abgelegt habe...
Meine Datei liegt initial im gleichen Ordner wie die AndroidManifest.xml....wie gebe ich den Pfad dahin in meinem Code an?

Danke

GGK
 
Verschiebe es in den RAW-Ordner. Ob es anders zuverlässig funktioniert kann ich dir nicht sagen, aber so schreibt es die Doku vor.
 
ganz kann ich noch nicht locker lassen 😀

ich baue folgenden Code in mein Programm ein:
Java:
String FILENAME = "hello.file";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

ich kann die Datei "hello.file" nicht auf meinem Gerät finden....wo finde ich denn die Datei?

GGK
 

Zurück
Oben