Diferència entre revisions de la pàgina «M3 - Programació»
De wikiserver
(→Fitxers orientat a byte) |
(→Fitxers orientat a byte) |
||
Línia 98: | Línia 98: | ||
|writeShort(short s)||2 | |writeShort(short s)||2 | ||
|} | |} | ||
+ | |||
+ | Exemple d'escriptura de 20 enters: | ||
+ | <pre> | ||
+ | public class EscriureEntersBinari { | ||
+ | |||
+ | public static void main(String[] args) throws IOException { | ||
+ | |||
+ | EscriureEntersBinari programa = new EscriureEntersBinari(); | ||
+ | programa.inici(); | ||
+ | } | ||
+ | |||
+ | public void inici() throws FileNotFoundException, IOException { | ||
+ | |||
+ | File f = new File("Enters.bin"); | ||
+ | RandomAccessFile raf = new RandomAccessFile(f, "rw"); | ||
+ | int valor = 1; | ||
+ | for (int i = 0; i < 20; i++) { | ||
+ | raf.writeInt(valor); | ||
+ | valor = valor * 2; | ||
+ | } | ||
+ | System.out.println("Fitxer escrit satisfactòriament."); | ||
+ | raf.close(); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | </pre> |
Revisió del 20:14, 3 feb 2018
Contingut
UF1: Programació Estructurada
Activitats
UF3: Fonament de gestió de fitxers
Continguts
Fitxers orientat a byte
Accés següèncial
Les dades s’emmagatzemen com una seqüència de valors, i per tant, l’esquema general que s'aplica en fitxers orientats a caràcter també es pot aplicar a aquest altre tipus.
Representació de les dades en format binari.
Tipus | Paura clau Java | Mide (bytes) |
---|---|---|
caràcter | char | 2 |
byte | byte | 1 |
enter curt | short | 2 |
enter simple | int | 4 |
enter llarg | long | 8 |
real de simple precisió | float | 4 |
real de doble precisió | doble | 8 |
Inicialització
import java.io.File; import java.io.RandomAccessFile; // s’usa tant per llegir com per escriure dades RandomAccessFile raf = new RandomAccessFile(File ruta, String mode); // File ruta per especificar la ruta del fitxer // String mode per especificar el mode de treball a l'hora de processar el fitxer
Dels modes de treball possibles el dos més utilitzats són:
- r: mode lectura. Errors si el fitxer no existeix o si s'invoca a mètodes d'escriptura.
- rw: mode escriptura-lectura. Si el fitxer no existeix, es crearà un de nou buit. Si existeix, no s’esborren les seves dades.
Escriptura de dades
L’única manera de generar fitxers orientats a byte que puguin ser llegits correctament és mitjançant codi d’un programa.
Cada cop que es fa una operació de lectura o escriptura, l’apuntador es desplaça automàticament el mateix nombre de bytes amb què s’ha operat.
Mètodes disponibles per escriure dades:
Mètode | Bytes escrits |
---|---|
writeBoolean(boolean b) | 1 |
writeByte (byte v) | 1 |
writeChar(char c) | 2 |
writeDouble(double d) | 8 |
writeFloat(float f) | 4 |
writeInt(int i) | 4 |
writeLong(long l) | 8 |
writeShort(short s) | 2 |
Exemple d'escriptura de 20 enters:
public class EscriureEntersBinari { public static void main(String[] args) throws IOException { EscriureEntersBinari programa = new EscriureEntersBinari(); programa.inici(); } public void inici() throws FileNotFoundException, IOException { File f = new File("Enters.bin"); RandomAccessFile raf = new RandomAccessFile(f, "rw"); int valor = 1; for (int i = 0; i < 20; i++) { raf.writeInt(valor); valor = valor * 2; } System.out.println("Fitxer escrit satisfactòriament."); raf.close(); } }
</pre>