Primero, me temo que su pregunta contiene un pequeño error. No hay método writeline en la clase Console. En cambio, la clase Console proporciona el método writer() que devuelve PrintWriter. Este escritor de impresión tiene println().
Ahora ¿cuál es la diferencia entre
System.console().writer().println("hello from console");
y
System.out.println("hello system out");
Si se ejecuta la aplicación desde la línea de comandos Creo que no hay ninguna diferencia. Pero si la consola no está disponible, System.console() devuelve null mientras System.out todavía existe. Esto puede suceder si invoca su aplicación y realiza la redirección de STDOUT al archivo.
Aquí hay un ejemplo que acabo de implementar.
import java.io.Console;
public class TestConsole {
public static void main(String[] args) {
Console console = System.console();
System.out.println("console=" + console);
console.writer().println("hello from console");
}
}
Cuando me encontré con la aplicación de línea de comandos que tiene el siguiente:
$ java TestConsole
[email protected]
hello from console
pero cuando me redirecciona la salida estándar al archivo ...
$ java TestConsole >/tmp/test
Exception in thread "main" java.lang.NullPointerException
at TestConsole.main(TestConsole.java:8)
línea 8 es console.writer().println()
.
Aquí es el contenido de/tmp/test
console=null
espero que mis explicaciones ayudan.
Consulte http://stackoverflow.com/questions/2369731/java-console-applications-is-system-out-still-the-way-to-go –
también console.writeline no es un método de Java (es .net) ... pero entiendo lo que estás preguntando :) –