Diferència entre revisions de la pàgina «DAM-M3-UF5. Lectura i escriptura. Fitxers»
(→Readers / Writers) |
(→Mètodes bàsics) |
||
| Línia 18: | Línia 18: | ||
A través de la entrada i sortida estàndard | A través de la entrada i sortida estàndard | ||
| − | * System.in | + | * System.in |
* System.out | * System.out | ||
Revisió del 22:16, 6 set 2012
torna M3 - Programació
Lectura i escriptura
Hi ha múltiples ocasions on cal introduir dades a un programa o mostra-les a la sortida, per exemple:
- Línia de comandes
- Formulari amb elements gràfics
- Fitxers
- Pipes o sockets
Mètodes bàsics
A través de la entrada i sortida estàndard
- System.in
- System.out
La classe Scanner
La classe Scanner és una funció d'utilitat simple per a la lectura de dades tipus primitius (int, String, etc...) o qualsevol Objecte que implementi Readable.
Trenca la lectura segons el delimitador (Per defecte un espai en blanc, encara que es pot modificar)
Scanner sc = new Scanner( System.in );
System.out.print( "Escriu un text: " );
String dada = sc.next();
System.out.println( "Has escrit: " + dada);
A més implementa la interface Iterator de manera que permet gestionar la lectura amb les operacions de control dels iteradors
- hasNext()
- next()
do {
System.out.print( "Escriu \"Fi\" per acabar: " );
dada = sc.next();
} while (!dada.equals("Fi"));
També permet definir diferents tipus d'entrada com fitxers o cadenes de text, i té mètodes específics per a la lectura d'enters, decimals, etc...
String dada = "aaa bbb ccc ddd";
Scanner sc = new Scanner(dada);
do {
dada = sc.next();
System.out.println( "Conté: " + dada);
} while (sc.hasNext());
dada = "1 2 3 4";
Scanner sc = new Scanner(dada);
do {
System.out.println( "Conté: " + sc.nextInt());
} while (sc.hasNextInt());
Readers / Writers
A part dels sistemes anteriors, Java proporciona una capa d'utilitats entre la entrada i l'usuari que permet fer un tractament semblant independentment del tipus d'entrada o sortida que es faci servir.
Gestiona aquestes operacions establint uns corrents o canals (stream), a través dels quals trasllada blocs de dades (buffer).
Les classes utilitzades hereten de java.io.Reader i de Java.io.Writer