Gå til innhold

Hvilken I/O klasse gir best


Anbefalte innlegg

Skrevet

Hvilken I/O klasse gir best fleksibilitet når det kommer å lese av filer og lagre til fil.

Husker ikke det lengre, så lenge siden jeg holdt på med I/O

 

Tenker da at jeg skal lagre en god del, burde vel egentlig vært en database,

men oppgaven krever filbehandling.

 

Skal lagre informasjon om leietaker, og koble det opp mot leiligheter. Og også

ha informasjon om hvor mye husleie de har betalt.

Videoannonse
Annonse
Skrevet (endret)

Det finnes to maater (som jeg vet om) hvordan man leser og skriver til fil, enten FileInputStream/FileOutputStream eller RandomAccessFile.

 

RandomAccessFile brukes ofte hvis du har en diger fil, men du vil bare lese en del av fila, gjerne midt i. Du kan ogsaa overskrive bytes midt i fila, men ikke slette bytes. Eneste stedet det er mulig aa appende bytes er paa slutten av fila.

 

FileInputStream/FileOutputStream leser/skriver en fil fra begynnelsen til slutt. Du kan ikke endre innholdet til en fil, bare erstatte hele fila (dvs, skrive alt paa nytt).

 

Vanligvis bruker man et hoeyre abstraksjonsnivaa naar man skriver til fil, f.eks. XML. De mest kjente metodene for XML parsing er DOM og SAX. SAX godt egnet for veldig store dokumenter, siden man leser linje for linje, og genererer events naar XML-Elementer finnes. Dessverre kan man ikke skrive XML filer med SAX. DOM leser hele dokumentet som ett, og man kan traversere XML-treet i hytt og pine etterpaa. DOM kan lese og skrive dokumenter. Soek paa nettet saa finner du tusenvis av eksempler paa bruk av begge.

For skriving av java-objekter til XML kan du bruke biblioteker f.eks. JAXP, JAXB, Castor etc. , eller gjoere alt for haand selv (egentlig ikke saa vanskelig).

 

Det aller, aller enkleste er aa bruke ObjectInputStream/ObjectOutputStream. Da serialiserer du enkelt og greitt objektstrukturen ved hjelp av javas innebygde serializable interface. Bruk FileInputStream/FileOutputStream som argument i ObjectInputStream/ObjectOutputStream saa skal objektserialiseringen vaere temmelig i boks.

 

Edit:

Tja, hva som er best? Som du sier selv, DB er best for store persistente dokumenter, men siden oppgaven definerer filbehandling, saa er det egentlig revnendes likegyldig hva du bruker saa lenge dokumentet ikke overstiger mange MB. Bruk det som er mest komfortabel (i dette tilfelle ObjectInputStream/ObjectOutputStream).

Endret av Patton
Skrevet

ja jeg tror jeg går for output input stream, tenkte over det, og det virker som om alt kan lagres som objekter av samme type på filen. Da er vel serializable best.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...