Permite realizar la entrada de datos desde dispositivos como la entrada
estándar o los ficheros, proporcionando métodos para la lectura de cadenas y de
los tipos básicos.
Ejs.: Scanner scan1= new
Scanner(System.in);
Scanner
scan2= new Scanner(File fich);
Va recogiendo fragmentos (tokens) de la entrada, siendo el separador
por defecto el espacio en blanco. Mediante sus métodos se pueden analizar,
recuperar y convertir los tokens que se van procesando.
Sus principales métodos son:
o
next()
devuelve el siguiente elemento en la entrada.
o
hasNext()
devuelve un valor boolean indicando si existe el
siguiente elemento en la entrada.
o
hasNextByte(), hasNextInt(), hasNextFloat, …
devuelven un valor boolean indicando si el tipo
del siguiente token coincide con el método, pero sin avanzar ningún token.
Por ejemplo hasNextByte() devolvería el valor true si el siguiente
token que se recuperaría con nextByte(), fuera un byte.
o
nextByte(), nextInt, nextFloat, …
devuelve el siguiente token como un valor del tipo
indicado por el método. Por ejemplo nextByte() devolverá un byte.
o
useDelimiter(String delim)
cambia el delimitador de tokens por defecto, con
el nuevo valor.
Ejemplo de uso de Scanner desde la entrada estándar
package esscanner;
import java.util.Scanner;
public class ESScanner {
public
static void main(String[] args) {
boolean
var_boolean;
char
var_char;
int
var_int;
float
var_float;
String
cadena;
Scanner
scan = new Scanner(System.in);
System.out.printf(“Escriba un boolean
: ");
var_boolean = scan.nextBoolean();
scan.nextLine();
System.out.printf(“Escriba un
char : ");
cadena = scan.nextLine();
var_char = cadena.charAt(0);
System.out.printf(“Escriba un int:
");
var_int = scan.nextInt();
System.out.printf(“Escriba un
float: ");
var_float = scan.nextFloat();
scan.nextLine();
System.out.printf(“Escriba una frase:
");
cadena =
scan.nextLine();
System.out.printf("var_boolean
= %b%n", var_boolean);
System.out.printf("var_char = %c%n", var_char);
System.out.printf("var_int = %d%n", var_int);
System.out.printf("var_float = %14.9f%n", var_float);
System.out.printf(“Frase: %s%n",
cadena);
}
}
Ejemplo de uso de Scanner utilizando ficheros
package es_fich_scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/*
* Lee un fichero de texto línea a línea
* mostrándolo por pantalla
* Lee un fichero de enteros delimitado por # y
lo muestra
*/
public class ES_fich_Scanner {
public
static void main(String[] args) throws FileNotFoundException {
File f =
new File("fich_lineas.txt");
Scanner
scan = new Scanner(f);
while
(scan.hasNextLine()) {
System.out.println(scan.nextLine());
}
File f2
= new File("fich_num.txt");
scan =
new Scanner(f2);
scan.useDelimiter("#");
while
(scan.hasNextInt()) {
System.out.println(scan.nextInt());
}
}
}
No hay comentarios:
Publicar un comentario