DAM-M3-UF5. Lectura i escriptura. Fitxers

De Wiki IES Marianao. Departament Informàtica
La revisió el 23:16, 6 set 2012 per Alex (Discussió | contribucions) (Mètodes bàsics)

Dreceres ràpides: navegació, cerca

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