Gå til innhold

Hvilken I/O klasse gir best


Anbefalte innlegg

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.

Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...