Exercicis d'autoavaluació
Exercici 1
Completeu les frases següents:
Exercici 2
Estudieu el programa següent:
package unitat6.apartat2.activitats; import java.io.File; import java.io.PrintStream; import java.io.RandomAccessFile; public class FitxersMisteriosos { FitxersMisteriosos programa = new FitxersMisteriosos(); programa.inici(); } public void inici() { long mida = a.length()/4; try { for (int i = 0; i < mida; i++) { int v = raf.readInt(); ps.print(v); if ((i > 0)&&(i%5 == 4)) { ps.print("\n"); } else { ps.print(" "); } } } } }
A partir del codi font del programa anterior, i sense executar-lo en el vostre entorn de treball, contesteu si les afirmacions següents són vertaderes (V) o falses (F).
Exercici 3
Estudieu el programa següent:
package unitat6.apartat2.activitats; import java.io.File; import java.io.RandomAccessFile; public class MesFitxersMisteriosos { MesFitxersMisteriosos programa = new MesFitxersMisteriosos(); programa.inici(); } public void inici() { long mida = a.length()/8; try { long i = 0; //PUNT A while (i < mida) { double v = raf.readDouble(); //PUNT B raf.skipBytes(8); i = i + 2; //PUNT C } i = 0; while (i < mida) { //PUNT D double v = raf.readDouble(); //PUNT E raf.skipBytes(32); i = i + 5; } raf.close(); } } }
A partir del codi font del programa anterior, i sense executar-lo en el vostre entorn de treball, contesteu si les afirmacions següents són vertaderes (V) o falses (F).
Exercici 4
Es disposa d’un fitxer de text amb exactament aquest contingut (inclosos salts de línia i espais):
1 4 3,87 9 6 2,1 5 -5 3 12 -80 4,5 6,3
A partir del contingut del fitxer orientat a text tot just mostrat, contesteu si les afirmacions següents són vertaderes (V) o falses (F). En fer-ho, aneu amb molt de compte amb la manera com s’usen els literals per establir un tipus de dades o un altre.
Exercici 5
Suposeu que es disposa del fitxer següent orientat a byte anomenat “Short.bin”. Aquest conté 10 valors de tipus short
consecutius. Recordeu que aquest tipus primitiu és per a valors enters que ocupen 2 bytes. Al fitxer es representa el valor de cada byte dins el fitxer individualment.
0x00 0x00 0x00 0x03 0x00 0x06 0x00 0x09 0x00 0x0C 0x00 0x0F 0x00 0x12 0x00 0x15 0x00 0x18 0x00 0x1B
Ara estudieu aquest programa que fa operacions sobre ell:
package unitat6.apartat2.activitats; import java.io.File; import java.io.RandomAccessFile; public class DadesBinariesMisterioses { DadesBinariesMisterioses programa = new DadesBinariesMisterioses(); programa.inici(); } public void inici() { try { long mida = a.length()/2; for (int i = 0; i < mida; i++) { if (i%2 == 0) { short v = raf.readShort(); raf.writeShort(2*v); } } //PUNT A raf.seek(8); raf.writeByte(1); raf.writeByte(2); raf.writeByte(3); raf.writeByte(4); //PUNT B while (raf.getFilePointer() < a.length()) { long aux = raf.getFilePointer(); short v = raf.readShort(); if (v > 20) { raf.seek(aux); raf.writeShort(1); } else { raf.skipBytes(2); } } //PUNT C raf.seek(18); for (int i = 0; i < mida/2; i++) { raf.writeInt(i + 1); } //PUNT D raf.close(); } } }
Sense executar-lo en el vostre entorn de treball, contesteu si les afirmacions següents són vertaderes (V) o falses (F).