Handy-Programmierung mit JavaME


PHBern Institut Sekundarstufe I
HomeTurtle GidletsBerechnungenKoordinatengrafikDruckenJava-Online
Online-Editor starten

Handy-Dateisystem


Dateien sind in der Regel permanente Datenspeicher auf einem physikalischen Datenträger. Im Gegensatz zu programminternen Variablen überleben die in einer Datei gespeicherten Daten das Programmende. Sie sind nach einem Neustart des Programms wieder verfügbar. Einfache Dateioperationen wie Lesen und Schreiben von Daten sind für viele Applikationen von grosser Bedeutung. Typische Anwendungen sind Vokabeltrainer oder die Suche nach Postleitzahlen.
In diesem Abschnitt werden an Hand von einfachen Beispielen die wichtigsten Dateioperationen erklärt.

 

Dateien haben einen Dateinamen mit oder ohne Dateityp (z.B. ex1.txt oder lesson1) Auf dem Handy wird die Erweiterung oft weggelassen. Unter einem Dateipfad versteht man üblicherweise den vollqualifizierten Dateinamen, welcher ausgehend von einem Root-Verzeichnis auch alle Unterverzeichnisse enthält. Ein Verzeichnispfad enthält nur das root-Verzeichnis und eventuelle Unterverzeichnisse.

Für das Handy besitzt jeder Memorychip ein eigenes Root-Verzeichnis, z.B. c:/oder e:/.

Im Emulator heisst das Root-Verzeichnis root1/ . Dieses entspricht auf dem PC folgendem Verzeichnis:

Für WTK 2.5.2: <userhome>\j2mewtk\2.5.2\appdb\DefaultColorPhone\filesystem\root1\

Für das ältere WTK 2.5.1:
<wtkroot>\appdb\DefaultColorPhone\filesystem\root1\

 

   

JavaMe verfügt für Dateioperationen über ein spezielles API JSP75. Um den Umgang mit Dateien zu vereinfachen, stellt die Klasse MFile aus der Klassenbibliothek Gidlet einfachere Methoden für den Umgang mit Dateien zur Verfügung. Auf der Website des Autors www.aplu.ch findet man unter Examples #5 und Forumartikel MFile - Handydateien im Gidlet Framework  einige Beispiele und Erklärungen zum MFile.

Einstellungen für den Emulator:
Schreiben und Lesen von Dateien sind keine harmlosen Operationen. Bei jedem Versuch, Dateien zu lesen oder zu schreiben muss auf dem Handy bestätigt werden, ob wir diese Operation zulassen. Man kann dies vermeiden, indem man folgende Einstellungen in der Datei _policy.txt vornimmt.
Für WTK 2.5.2: c:\Documents and Settings\\j2mewtk\2.5.2\appdb\_policy.txt
Für WTK 2.5.1 wtkroot\appdb\_policy.txt

Ändern der Zeilen
blanket(oneshot): read_user_data_access
blanket(oneshot): write_user_data_access

zu:
allow: read_user_data_access
allow: write_user_data_access

Einstellungen für das Handy:
Bei vielen Handys darf nur mit signierten Midlets auf das Dateisystem zugegriffen werden. Andere Handys verbieten den Zugriff auf c:/, erlauben aber den Zugriff auf andere Memorychips (eventuell nach Bestätigung, die man auf einigen Handys unter Einstellungen abschalten kann).