10 j2me content v1

60
© BME-AAIT 2010 Adatkezelés Java ME platformon 1 Adatkezelés Java ME platformon Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatika Tanszék Ekler Péter

Upload: sweidan-omar

Post on 16-Oct-2014

33 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 1

Adatkezelés Java ME

platformon

Budapesti Műszaki és Gazdaságtudományi Egyetem

Automatizálási és Alkalmazott Informatika Tanszék

Ekler Péter

Page 2: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 2

Gyorskérdés

Milyen lehetőségeket biztosít az RMS

rekordok összehasonlítására?

Page 3: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 3

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 4: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 4

Bevezetés

Egyre több összetett alkalmazás mobil

készülékekre

Adatkezelés kétféle megközelítése:

Alkalmazások állapotának megőrzése, kisebb

adatok tárolása

Fájlok, nagyobb mennyiségű adatok kezelése

Mobil készülékek növekvő tárkapacitása

Belső memória

Memóriakártyák

Page 5: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 5

Adatkezelés jelentőssége

Többféle multimédia formátum támogatása

Dokumentum kezelési lehetőségek bővülése

Egyre több adatot tárolnak a felhasználók a mobil készülékeken

Biztonsági kérdések

Page 6: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 6

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 7: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 7

Record Management System

Rekord orientált adatbázis-kezelő rendszer

Feladata, hogy egy mobil alkalmazás

perzisztensen tárolhasson adatot

Például az alkalmazás leállítása majd

újraindítása után vissza lehessen tölteni az

elmentett adatokat

Page 8: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 8

Record orientáltság

Az adatbázisban byte-ok tárolhatók

Beépített típusok vagy objektumok

közvetlen tárolása nem támogatott

Ilyen adatokat előbb át kell alakítani byte

tömbbé cast-olással, vagy szerializáció

segítségével

Page 9: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 9

RMS csomag

Az RMS használatához a javax.microedition.rms package

importálása szükséges

A fő osztály a RecordStore osztály

Létrehozás:

RecordStore.openRecordStore(

String recordStoreName,

boolean createIfNecessary)

Page 10: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 10

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 11: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 11

RecordStore

Lehetővé teszi rekordok hozzáadását,

módosítását és törlését

A MIDlet-ek rekordokat oszthatnak meg

egymás között, ha egy alkalmazásban

vannak

Alkalmazások viszont nem érhetik el

egymás adatbázisait

Page 12: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 12

Adatbázis elnevezés

Az adatbázis neve maximum 32 Unicode

kódolású karakter lehet

Case-sensitive

Más alkalmazás használhatja ugyanazt az

adatbázis-nevet, nem lesz név ütközés,

mindkét programnak külön-külön lesz egy

adatbázisa ugyanazon a néven

Page 13: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 13

RecordStore műveletek

A műveletek oszthatatlan, szinkron műveletek, vagyis az adatbázisban lévő adatok nem lehetnek inkonzisztens állapotban.

Vagy sikerül az adat írása egészében, vagy egyáltalán nincs változás az adatbázisban.

Szálak használata esetén a programozó feladata, hogy adat olvasásakor a helyes adat legyen a RecordStore-ban.

Page 14: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 14

Adatbázis megnyitása

public static RecordStore openRecordStore(String

recordStoreName, boolean createIfNecessary )

Megnyitja és visszaadja a recordStoreName nevű adatbázist. Ha nem létezik az adatbázis, és createIfNecessary = true, akkor új adatbázist hoz létre, false esetén pedig RecordStoreNotFoundException kivételt dob.

Példa:

RecordStore rs =

RecordStore.openRecordStore(„Score”,true);

Page 15: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 15

Adatbázis lezárása

public closeRecordStore()

Bezárja az adatbázist

Példa:

rs.CloseRecordStore();

Page 16: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 16

Adatbázis törlése

public deleteRecordStore(String

recordStoreName )

Törli a recordStoreName nevű

adatbázist

Példa:

RecordStore.deleteRecordStore(„

Scores”);

Page 17: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 17

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 18: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 18

Rekord hozzáadása az adatbázishoz

public int addRecord(byte[] data,

int offset, int numBytes)

A data byte tömb offset-edik byte-jától numBytes hosszan hozzáadja a RecordStore-hoz a data-t. Visszatérési értéke a RecordStore-ban elfoglalt pozíció.

Példa:

String st = „HighScore 123”;

byte bytes[] = st.getBytes();

rs.addRecord(bytes,0,bytes.length);

Page 19: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 19

Rekord lekérése az adatbázisból I.

public byte[] getRecord(int

recordId)

A RecordStore recordId helyén lévő rekord

tartalmát adja vissza.

Példa:

byte[] bytes = Rs.getRecord(1);

Page 20: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 20

Rekord lekérése az adatbázisból II.

public int getRecord(int recordId,

byte[] buffer, int offset)

A buffer változóba offset hosszan

bemásolja a RecordStore recordId helyén

lévő rekord tartalmát. Visszatérési értéke,

hogy hány byte-ot sikerült a bufferbe

másolni.

rs.getRecord(1, bytes, 3);

Page 21: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 21

Adott pozíciójú rekord beállítása

public void setRecord(int recordId, byte[] newData, int offset, int

numBytes)

Az adatbázis recordId helyén lévő record-ot felülírja a newData tartalmával, offset kezdő címmel, numBytes hosszan.

Példa:

String st = „HighScore 124”;

byte[] bytes = st.getBytes();

rs.setRecord(1, bytes, 0, bytes.length());

Page 22: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 22

Rekord törlése

public void deleteRecord(int

recordId)

Törli a recordId helyen lévő rekordot az

adatbázisból.

Példa:

rs.deleteRecord(1);

Page 23: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 23

Rekordok összehasonlítása I.

Az RMS definiál egy RecordComparator

interface-t, ami a compare (byte[] rec1,

byte[] rec2) függvénnyel lehetővé teszi,

hogy két rekordot összehasonlíthassunk.

Page 24: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 24

Rekordok összehasonlítása II.

Példa:

int compare (byte[] b1, byte[] b2) {

String s1 = new String(b1);

String s2 = new String(b2);

if (s1.compareTo(s2) > 0)

return RecordComparator.FOLLOWS;

else if (s1.compareTo(s2) == 0)

return RecordComparator.EQUIVALENT;

else

return RecordComparator.PRECEDES;

}

Page 25: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 25

Rekordok szűrése I.

Az RMS definiál egy RecordFilter interface-t, ami a matches(byte[]

candidate) függvénnyel lehetővé teszi,

hogy a rekordok közül csak bizonyos

tulajdonságokkal bírókat olvashassunk

vissza.

Page 26: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 26

Rekordok szűrése II.

Példa:

public boolean matches(byte[]

candidate) {

String s1 = new

String(candidate);

if (s1.equals("XX")) return

true;

else return false;

}

Page 27: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 27

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 28: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 28

Navigáció a rekordok között I.

A RecordEnumeration interface segítségével végigiterálhatunk az adatbázisban lévő rekordokon vagy azok részhalmazán.

boolean hasNextElement(): visszaadja, van-e következő elem

boolean hasPreviousElement(): visszaadja, van-e előző elem

int numRecords(): visszaadja a rekordok számát

Page 29: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 29

Navigáció a rekordok között II.

byte[] nextRecord(): a következő elemet adja vissza

byte[] previousRecord(): az előző elemet adja vissza

void reset(): visszaállítja az

Enumeration-t az adatbázis elejére

Page 30: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 30

Navigáció a rekordok között III.

void destroy(): megsemmisíti az enumerációt és felszabadítja az erőforrásokat

void rebuild(): újra generáljuk az enumerációt, frissítjük, ha változott az adatbázis tartalma

boolean isKeptUpdated(): visszaadja, hogy frissül-e automatikusan az enumeráció

void keepUpdated(boolean keepUpdated):

beállítja, hogy frissüljön-e automatikusan az

enumeráció

Page 31: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 31

Navigáció a rekordok között IV.

int nextRecordId(): a következő elem

sorszámát adja vissza

int previousRecordId(): az előző elem

sorszámát adja vissza

Page 32: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 32

Navigáció megvalósítása I.

public RecordEnumeration

enumerateRecords(RecordFilter filter,

RecordComparator comparator, boolean

tracking)

A RecordStore osztály függvénye,

visszaad egy RecordEnumerationt az

adatbázisra. Egy filter objektummal szűrjük

a rekordokat. A visszaadás sorrendjét egy

comparator objektummal tudjuk sorrendbe

rendezni, egyébként rendezetlen

sorrendben adná vissza a rekordokat.

Page 33: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 33

Navigáció megvalósítása II.

public RecordEnumeration

enumerateRecords(RecordFilter filter,

RecordComparator comparator, boolean

tracking)

A tracking változó = true esetén ha

változás történik az adatbázisban, úgy az

enumeráció automatikusan frissül.

Erőforrásigényes, ha nincs szükség erre,

érdemes kikapcsolni (false).

Page 34: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 34

Példa navigáció megvalósítására I.

RecordEnumeration re =

rs.enumerateRecords(null, null,

false);

while (re.hasNextElement()) {

byte nextRec[] =

re.nextRecord();

//nextRec[]felhasználása

}

re.destroy();

Page 35: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 35

Példa navigáció megvalósítására II.

public class MyFilter implements RecordFilter {

public boolean matches( byte[] recordData ){ return ( recordData.length > 0 && recordData[0] != 0

); } }

public class MyComparator implements RecordComparator {

public int compare( byte[] rec1, byte[] rec2 ){

if( rec1.length == rec2.length ){return EQUIVALENT;}

else if( rec1.length < rec2.length ){return PRECEDES;}

else { return FOLLOWS; } } }

RecordEnumeration re = rs.enumerateRecords( new MyFilter(), new MyComparator(), false );

re.destroy();

Page 36: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 36

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 37: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 37

Fájlrendszer elérése

A tárkapacitás növekedésével felmerült az

igény a fájlrendszer eléréséhez Java ME

alkalmazásokból

Az alapértelmezett Java ME csomagok

nem támogatják a fájlrendszer elérését

A Starndard Java tartalmazza a java.io.File

csomagot, azonban ez túl összetett mobil

készülékek számára

Page 38: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 38

JSR-75

A JSR-75 két különálló API-t tartalmaz:

FileConnection Optional Package (FC) API

Mobil készülék fájlrendszerének elérése

Elsődleges szempont a memóriakártya elérése

The PIM Optional Package (PIM) API

Mobil eszközön tárolt személyes információk

elérése

Névjegyzék, naptár, tennivalók listája

A két API független egymástól

Page 39: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 39

FileConnection API

javax.microedition.io.file csomag

Két interface:

FileConnection: Fájlok és könyvtárak eléréséhez

FileSystemListener: Listener, mely értesítést kaphat, ha változás történik a fájlrendszeren

Három osztály:

FileSystemRegistry: Listener-ek központi tárolója

ConnectionClosedException: kapcsolat megszakadását jelzi

IllegalModeException: jelzi, ha például nincs meg a szükséges biztonsági szint (nincs írási jog)

Page 40: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 40

Fájl elérése

Fájl elérése általánosan:

Connector.open(String parameter)

file://<host>/<root>/<directory>/<

directory>/.../<name>

Például:

C:/

FileConnection fc =

(FileConnection)

Connector.open("file:///C:/");

Page 41: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 41

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 42: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 42

Meghajtók listázása

Emulátoron egy meghajtó: root1

…/toolkit/appdb/DefaultColorPhone/filesystem/root1

A meghajtók listája:

private void getRootList() {

Enumeration drives = FileSystemRegistry.listRoots();

System.out.println(„Meghajtók listája:");

while(drives.hasMoreElements()) {

String root = (String) drives.nextElement();

System.out.println("\t"+root);

}

}

Page 43: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 43

Fájl/könyvtár létezésének vizsgálata

Sok esetben szükség van megvizsgálni, hogy adott könyvtár/fájl létezik-e már

private boolean fileExist(String aFilePath)

{

boolean result = false;

FileConnection conn = null;

try {

conn = (FileConnection) Connector.open( "file:///"+aFilePath,Connector.READ );

result = conn.exists();

conn.close();

} catch (IOException ex) {

result = false;

}

return result;

}

Page 44: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 44

Könyvtár létrehozása

Könyvtár létrehozása az mkdir() függvényhívással történik

private boolean createFolder(String aFolderName)

{

FileConnection conn = null;

try {

conn = (FileConnection) Connector.open( "file:///"+currentRoot+aFolderName+"/",

Connector.WRITE );

conn.mkdir();

conn.close();

return true;

} catch (IOException ex) {

ex.printStackTrace();

return false;

}

}

Page 45: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 45

Fájl létrehozása tartalommal

Fájl létrehozásához meg kell adnunk a fájl nevét a teljes elérési úttal

private void createFile(String aFileName, String aFileData)

{

FileConnection conn = null;

try {

conn = (FileConnection) Connector.open( "file:///"+currentRoot+aFileName,Connector.WRITE );

conn.create();

OutputStream out = conn.openOutputStream();

out.write(aFileData.getBytes());

out.close();

conn.close();

} catch (IOException ex) {

ex.printStackTrace();

} catch (Exception ex) {

ex.printStackTrace();

}

}

Page 46: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 46

Fájl tartalmának kiolvasása

private byte[] viewFile(String aFilePath)

{

FileConnection conn = null;

try {

conn = (FileConnection) Connector.open( "file:///"+aFilePath,

Connector.READ );

InputStream in = conn.openInputStream();

byte[] content = new byte[(int)conn.fileSize()];

in.read(content);

in.close();

conn.close();

return content;

} catch (IOException ex) {

return null;

}

}

Page 47: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 47

FileConnection további függvényei

Fájl törlése: delete()

Szabad terület: availableSize()

Könyvtár vizsgálat: isDirectory()

Rejtett-e: isHidden()

Utolsó módosítás: lastModified()

Könyvtár tartalmának listázása: list()

Stb.

Page 48: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 48

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 49: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 49

Feladat

Készítsünk egy alkalmazást, mely fájlböngészőként használható a mobil készüléken

Az alkalmazás tudjon új fájlt és könyvtárat is létrehozni

Az alkalmazás képes legyen a szöveges fájlok tartalmának megjelenítésére

Kilépéskor tároljuk el RMS-ben, hogy melyik könyvtárban álltunk, betöltéskor pedig ezzel inicializáljuk az alkalmazást

Page 50: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 50

Megoldás főbb lépései I.

Tároljuk egy változóba az aktuális könyvtár útvonalát:

private String currentRoot="/";

Az aktuális könyvtár tartalmát pedig tároljuk egy Vector-ban

private Vector currentContent = new

Vector();

A kijelzőn egy listában jelenjen meg a könyvtár tartalma

Ha a lista a meghajtók listája, akkor feljebb már nem mehetünk

Ha a lista egy könyvtár listája, akkor felül egy „..” elem legyen, melyet választva egy könyvtárral feljebb ugrunk

Page 51: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 51

Megoldás főbb lépései II.

Szükség van egy függvényre, mely az akutális útvonal alapján kilistázza a könyvtárban található mappákat és fájlokat

A fájlkezelési műveleteket külön szálban kell elhelyeznünk, hogy ne blokkolják a UI-t:

class MyRootRefresher extends Thread

{

public void run()

{

refreshListByCurrentRoot();

}

}

Page 52: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 52

Könyvtár elmentése kilépéskor

public void saveSettings()

{

try {

rs = RecordStore.openRecordStore("browsersettings", true);

byte[] currentRootStore = currentRoot.getBytes();

if (rootRecordID==-1)

rs.addRecord(currentRootStore,0,currentRootStore.length);

else

rs.setRecord(rootRecordID,currentRootStore,0,currentRootStore.length);

rs.closeRecordStore();

} catch (RecordStoreNotOpenException ex) {

ex.printStackTrace();

} catch (InvalidRecordIDException ex) {

ex.printStackTrace();

} catch (RecordStoreException ex) {

ex.printStackTrace();

}

}

Page 53: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 53

Elmentett könyvtár betöltése

public void loadSettings() {

try {

rs = RecordStore.openRecordStore("browsersettings", true);

RecordEnumeration re = rs.enumerateRecords(null, null, false);

boolean found = false;

while (re.hasNextElement() && !found) {

rootRecordID = re.nextRecordId();

try {

byte[] currentRootStore = rs.getRecord(rootRecordID);

if (currentRootStore!=null) {

currentRoot = new String(currentRootStore);

found = true;

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

rs.closeRecordStore();

} catch (Exception ex) {

ex.printStackTrace();

}

}

Page 54: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 54

Az elkészült alkalmazás

Page 55: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 55

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 56: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 56

Összefoglalás

Adatok tárolása mobil készülékeken

Kisebb méretű adatok tárolása RMS-ben

Mobil készülék fájlrendszerének elérése,

manipulációja a JSR-75 kiegészítés

segítségével

Biztonsági kérdések

Fájlrendszer műveletek külön szálban

Page 57: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 57

Tartalom

Bevezetés

Adattárolás a Record Management System (RMS) segítségével

RMS ismertetése

Adatbázis létrehozása és lezárása

Rekordműveletek

Navigáció a rekordok között

Fájlkezelés Java ME platformon

Fájlok elérése

Különféle fájlműveletek

Példa fájlböngésző alkalmazás

Összefoglalás

Teszt

Page 58: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 58

Teszt I.

1. Mikor érdemes az RMS-t használni?

2. Mikor találkozhatunk biztonsági megerősítő kérdésekkel Java ME alkalmazásokban?

3. Hogyan tudunk elérni egy fájlt Java ME alkalmazásból?

4. Milyen főbb Java ME fájlkezelő függvényeket ismer?

5. Miért kell a fájlkezelő feladatokat külön szálban elhelyeznünk?

Page 59: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 59

Teszt II.

Mi alapján szűr az alábbi RecordFilter interface-t implementáló osztály, hol használunk ilyen jellegű szűrést?

public class MyFilter implements RecordFilter {

public boolean matches( byte[] recordData ){

String tempStringData = new String (recordData);

return (tempStringData.endsWidth(„#”));

}

}

Page 60: 10 J2ME Content v1

© BME-AAIT 2010 Adatkezelés Java ME platformon 60

Kérdések