Luego de mucho luchar pudimos encontrar el arreglo de esta dificultad que muchos de nuestros lectores de este espacio han presentado. Si tienes algún detalle que aportar puedes compartir tu conocimiento.
- Todas las interfaces implementadas:
Flushable
public final class Console
extends Object
implements Flushable
Métodos para acceder al dispositivo de consola basado en caracteres, si lo hubiera, asociado con la máquina virtual Java actual.
El hecho de que una máquina virtual tenga una consola depende de la plataforma subyacente y también de la forma en que se invoca la máquina virtual. Si la máquina virtual se inicia desde una línea de comando interactiva sin redirigir los flujos de entrada y salida estándar, entonces su consola existirá y normalmente estará conectada al teclado y la pantalla desde la cual se inició la máquina virtual. Si la máquina virtual se inicia automáticamente, por ejemplo, mediante un programador de trabajos en segundo plano, normalmente no tendrá una consola.
Si esta máquina virtual tiene una consola, entonces está representada por una instancia única de esta clase que se puede obtener invocando la System.console()
método. Si no hay ningún dispositivo de consola disponible, se devolverá una invocación de ese método. null
.
Las operaciones de lectura y escritura están sincronizadas para garantizar la finalización atómica de las operaciones críticas; por lo tanto, invocando métodos readLine()
, readPassword()
, format()
, printf()
así como las operaciones de lectura, formato y escritura en los objetos devueltos por reader()
y writer()
puede bloquearse en escenarios multiproceso.
Invocando close()
en los objetos devueltos por el reader()
y el writer()
no cerrará el flujo subyacente de esos objetos.
Los métodos de lectura de consola regresan null
cuando se llega al final del flujo de entrada de la consola, por ejemplo, escribiendo control-D en Unix o control-Z en Windows. Las operaciones de lectura posteriores se realizarán correctamente si posteriormente se ingresan caracteres adicionales en el dispositivo de entrada de la consola.
A menos que se especifique lo contrario, pasar un null
argumento a cualquier método en esta clase causará un NullPointerException
para ser arrojado.
Nota de seguridad: Si una aplicación necesita leer una contraseña u otros datos seguros, debe usar readPassword()
o readPassword(String, Object...)
y poner a cero manualmente la matriz de caracteres devuelta después del procesamiento para minimizar la vida útil de los datos confidenciales en la memoria.
Console cons;char[] passwd;if((cons =System.console())!=null&&(passwd = cons.readPassword("[%s]","Password:"))!=null)...java.util.Arrays.fill(passwd,' ');
- Ya que:
- 1,6
Resumen del método
Modificador y tipo | Método | Descripción |
---|---|---|
void |
flush() |
Vacía la consola y obliga a que cualquier salida almacenada en búfer se escriba inmediatamente. |
Console |
format(String fmt, |
Escribe una cadena formateada en el flujo de salida de esta consola utilizando la cadena de formato y los argumentos especificados. |
Console |
printf(String format, |
Un método conveniente para escribir una cadena formateada en la secuencia de salida de esta consola utilizando la cadena de formato y los argumentos especificados. |
Reader |
reader() |
Recupera lo único Reader objeto asociado con esta consola. |
String |
readLine() |
Lee una sola línea de texto de la consola. |
String |
readLine(String fmt, |
Proporciona un mensaje con formato y luego lee una sola línea de texto desde la consola. |
char[] |
readPassword() |
Lee una contraseña o frase de contraseña de la consola con el eco desactivado |
char[] |
readPassword(String fmt, |
Proporciona un mensaje formateado, luego lee una contraseña o frase de contraseña de la consola con el eco desactivado. |
PrintWriter |
writer() |
Recupera lo único PrintWriter objeto asociado con esta consola. |
Métodos declarados en la clase java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Detalles del método
escritor
publicPrintWriterwriter()
Recupera lo único PrintWriter
objeto asociado con esta consola.
- Devoluciones:
- El printwriter asociado con esta consola
lector
publicReaderreader()
Recupera lo único Reader
objeto asociado con esta consola.
Este método está destinado a ser utilizado por aplicaciones sofisticadas, por ejemplo, un Scanner
objeto que utiliza la rica funcionalidad de análisis / escaneo proporcionada por el Scanner
:
Console con = System.console(); if (con != null) Scanner sc = new Scanner(con.reader()); ...
Para aplicaciones simples que solo requieren lectura orientada a líneas, use readLine(java.lang.String, java.lang.Object...)
.
Las operaciones de lectura masiva read(char[])
, read(char[], int, int)
y read(java.nio.CharBuffer)
en el objeto devuelto no se leerá en caracteres más allá del límite de línea para cada invocación, incluso si el búfer de destino tiene espacio para más caracteres. los Reader
‘s read
Los métodos pueden bloquearse si no se ha ingresado o alcanzado un límite de línea en el dispositivo de entrada de la consola. Se considera que un límite de línea es cualquiera de un salto de línea ('n'
), un retorno de carro ('r'
), un retorno de carro seguido inmediatamente por un salto de línea o un final de flujo.
- Devoluciones:
- El lector asociado a esta consola
formato
publicConsole format(String fmt,Object... args)
Escribe una cadena formateada en el flujo de salida de esta consola utilizando la cadena de formato y los argumentos especificados.
- Parámetros:
fmt
– Una cadena de formato como se describe en Sintaxis de cadena de formatoargs
– Argumentos a los que hacen referencia los especificadores de formato en la cadena de formato. Si hay más argumentos que especificadores de formato, se ignoran los argumentos adicionales. El número de argumentos es variable y puede ser cero. El número máximo de argumentos está limitado por la dimensión máxima de una matriz de Java definida por La especificación de la máquina virtual de Java. El comportamiento en unnull
El argumento depende de la conversión.- Devoluciones:
- Esta consola
- Lanza:
IllegalFormatException
– Si una cadena de formato contiene una sintaxis ilegal, un especificador de formato que es incompatible con los argumentos dados, argumentos insuficientes dada la cadena de formato u otras condiciones ilegales. Para obtener la especificación de todos los posibles errores de formato, consulte la sección Detalles de la especificación de la clase del formateador.
printf
publicConsole printf(String format,Object... args)
Un método conveniente para escribir una cadena formateada en la secuencia de salida de esta consola utilizando la cadena de formato y los argumentos especificados.
Una invocación de este método del formulario con.printf(format, args)
se comporta exactamente de la misma manera que la invocación de
con.format(format, args)
.
- Parámetros:
format
– Una cadena de formato como se describe en Sintaxis de cadena de formato.args
– Argumentos a los que hacen referencia los especificadores de formato en la cadena de formato. Si hay más argumentos que especificadores de formato, se ignoran los argumentos adicionales. El número de argumentos es variable y puede ser cero. El número máximo de argumentos está limitado por la dimensión máxima de una matriz de Java definida por La especificación de la máquina virtual de Java. El comportamiento en unnull
El argumento depende de la conversión.- Devoluciones:
- Esta consola
- Lanza:
IllegalFormatException
– Si una cadena de formato contiene una sintaxis ilegal, un especificador de formato que es incompatible con los argumentos dados, argumentos insuficientes dada la cadena de formato u otras condiciones ilegales. Para obtener la especificación de todos los posibles errores de formato, consulte la sección Detalles de la especificación de la clase del formateador.
readLine
publicString readLine(String fmt,Object... args)
Proporciona un mensaje con formato y luego lee una sola línea de texto desde la consola.
- Parámetros:
fmt
– Una cadena de formato como se describe en Sintaxis de cadena de formato.args
– Argumentos a los que hacen referencia los especificadores de formato en la cadena de formato. Si hay más argumentos que especificadores de formato, se ignoran los argumentos adicionales. El número máximo de argumentos está limitado por la dimensión máxima de una matriz de Java definida por La especificación de la máquina virtual de Java.- Devoluciones:
- Una cadena que contiene la línea leída desde la consola, sin incluir ningún carácter de terminación de línea, o
null
si se ha llegado al final de la secuencia. - Lanza:
IllegalFormatException
– Si una cadena de formato contiene una sintaxis ilegal, un especificador de formato que es incompatible con los argumentos dados, argumentos insuficientes dada la cadena de formato u otras condiciones ilegales. Para obtener la especificación de todos los posibles errores de formato, consulte la sección Detalles de la especificación de la clase del formateador.IOError
– Si ocurre un error de E / S.
readLine
publicStringreadLine()
Lee una sola línea de texto de la consola.
- Devoluciones:
- Una cadena que contiene la línea leída desde la consola, sin incluir ningún carácter de terminación de línea, o
null
si se ha alcanzado el final de la secuencia. - Lanza:
IOError
– Si ocurre un error de E / S.
readPassword
publicchar[] readPassword(String fmt,Object... args)
Proporciona un mensaje formateado, luego lee una contraseña o frase de contraseña de la consola con el eco desactivado.
- Parámetros:
fmt
– Una cadena de formato como se describe en Sintaxis de cadena de formato para el texto del mensaje.args
– Argumentos a los que hacen referencia los especificadores de formato en la cadena de formato. Si hay más argumentos que especificadores de formato, se ignoran los argumentos adicionales. El número máximo de argumentos está limitado por la dimensión máxima de una matriz de Java definida por La especificación de la máquina virtual de Java.- Devoluciones:
- Una matriz de caracteres que contiene la contraseña o la frase de contraseña leída desde la consola, sin incluir ningún carácter de terminación de línea, o
null
si se ha alcanzado el final de la secuencia. - Lanza:
IllegalFormatException
– Si una cadena de formato contiene una sintaxis ilegal, un especificador de formato que es incompatible con los argumentos dados, argumentos insuficientes dada la cadena de formato u otras condiciones ilegales. Para obtener la especificación de todos los posibles errores de formato, consulte la sección Detalles de la especificación de la clase del formateador.IOError
– Si ocurre un error de E / S.
readPassword
publicchar[]readPassword()
Lee una contraseña o frase de contraseña de la consola con el eco desactivado
- Devoluciones:
- Una matriz de caracteres que contiene la contraseña o la frase de contraseña leída desde la consola, sin incluir ningún carácter de terminación de línea, o
null
si se ha llegado al final de la secuencia. - Lanza:
IOError
– Si ocurre un error de E / S.
enjuagar
publicvoidflush()
Vacía la consola y obliga a que cualquier salida almacenada en búfer se escriba inmediatamente.
Recuerda que tienes concesión de reseñar si te fue de ayuda.