Activitats
Completar el codi
L’objectiu d’aquesta activitat és repassar com inicialitzar i usar les diferents classes associades a fluxos d’entrada/sortida al java.
Corregiu el fragments de codi següents afegint una sola línia, o completant-la, on apareix ???:
1.
2.
byte[] buffer = new byte[1024]; ??? bis.read(buffer); bis.reset(); //Es torna a començar
3.
??? atribut1; atribut1 = i; atribut2 = j; } return atribut1 + “:” + atribut2; } } … Tupla t1 = new Tupla(100,200); oos.writeObject(t); ??? Tupla t2 = (Tupla)ois.readObject(); ???
4.
//Es vol omplir tot el buffer amb dades byte [] buffer = new byte[long]; int len = 0, inici = 0; do { len = ???; inici += len; } (while inici < buffer.length);
El corrector de termes automàtic
L’objectiu d’aquesta activitat és veure com es processen les dades que provenen de diferents fluxos per assolir una fita concreta.
Dueu a terme una aplicació per reemplaçar les aparicions de certes paraules per altres dins un conjunt de fitxers de text d’entrada, anomenat “Entrada.txt”, d’acord amb una llista predefinida en un fitxer anomenat “Corrector.txt”. En aquest darrer fitxer es desa el conjunt de termes que cal detectar i la nova paraula per la qual s’han de reemplaçar, com parelles de paraules separades per guió (terme-correcció), escrites en diferents línies. L’aplicació ha de llegir els fitxers i processar-los de manera que es generi nova versió, anomenada “Sortida.txt”, en què només apareguin els termes correctes d’acord amb la llista.
Ara bé, cal fer aquesta tasca amb la particularitat que, en tot moment, a memòria només es pot tenir un únic parell terme-traducció del fitxer “Corrector.txt”, i el fitxer de sortida s’ha d’anar generant a mesura que es van fent les traduccions. Mai no es pot disposar a memòria de tot el contingut de qualsevol dels tres fitxers.
Per exemple:
- Entrada.txt: es desa en la cache.
- Corrector.txt: cache-cau
- Sortida.txt: es desa en la cau.
Es deixa total llibertat sobre quina ha de ser la interfície de l’aplicació. Per fer aquest exercici, no cal preocupar-se de detalls com processar els punts a final de frase o els apòstrofs.
Per exemple, a partir dels fitxers Entrada.txt i Corrector.txt:
Aquest algoritme encriptat requereix un tamany de cache massa gran.
algoritme-algorisme encriptat-xifrat tamany-mida cache-cau
La sortida seria: “Aquest algorisme xifrat requereix una mida de cau massa gran.”
Persistència d'objectes per tipus primitius
L’objectiu d’aquesta activitat és veure com es pot escriure i recuperar, des d’un fitxer, un conjunt de tipus de dades bàsics. Concretament, el contingut d’un objecte sense recórrer al mecanisme de seriació.
Desenvolupeu una aplicació que emmagatzemi, en un fitxer binari, un conjunt d’instàncies de la classe següent i sigui capaç de recuperar-les. Per aconseguir-ho es pot usar lliurement qualsevol tipus de flux. L’única condició és que no es pot usar seriació, els atributs de cada instància s’han d’abocar i recuperar individualment sobre el fitxer.
Desar la partida
L’objectiu d’aquesta activitat és entendre com funciona el mecanisme de seriació del Java, de manera que és possible desar i restaurar el Model d’una aplicació de manera relativament simple.
Modifiqueu el codi font d’un joc del Buscamines, disponible al final d’aquest enunciat, de manera que el jugador pugui desar l’estat de la partida i reprendre-la en qualsevol moment. Per fer-ho, useu el mecanisme de seriació per defecte que proporciona el Java.