Java Tutorial/Development/Console
Содержание
Console based login
<source lang="java">
import java.io.Console; public class Login {
public static void main(String[] args) throws Exception { Console console = System.console(); String username = console.readLine("Username:"); char[] pwd = console.readPassword("Password:"); System.out.println("Username = " + username); System.out.println("Password = " + new String(pwd)); username = ""; for (int i = 0; i < pwd.length; i++) pwd[i] = 0; }
}</source>
Console.ReadLine
<source lang="java">
import java.io.Console; import java.io.IOException; import java.io.ObjectInputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.text.MessageFormat; import java.util.Date; import java.util.Locale; public class DateServer {
public final static int PORT = 5000; private ServerSocket ss; public DateServer(int port) { try { ss = new ServerSocket(port); } catch (IOException ioe) { System.err.println("Unable to create server socket: " + ioe); System.exit(1); } } private void runServer() { Console console = System.console(); Handler h = new Handler(ss); h.start(); while (true) { String cmd = console.readLine(">"); if (cmd == null) continue; if (cmd.equals("exit")) System.exit(0); } } public static void main(String[] args) { new DateServer(PORT).runServer(); }
} class Handler extends Thread {
private ServerSocket ss; Handler(ServerSocket ss) { this.ss = ss; } public void run() { while (true) { try { Socket s = ss.accept(); ObjectInputStream ois; ois = new ObjectInputStream(s.getInputStream()); Locale l = (Locale) ois.readObject(); PrintWriter pw; pw = new PrintWriter(s.getOutputStream()); MessageFormat mf; mf = new MessageFormat("The date is {0, date, long}", l); Object[] args = { new Date() }; pw.println(mf.format(args)); pw.close(); } catch (Exception e) { System.err.println(e); } } }
}</source>
Masking a password with the Console class
<source lang="java">
import java.io.Console; public class Main {
public static void main(String[] args) { Console console = System.console(); char passwordArray[] = console.readPassword("Enter your secret password: "); console.printf("Password entered was: %s%n", new String(passwordArray)); }
}</source>
Printing text with the Console class
<source lang="java">
import java.io.Console; public class Main {
public static void main(String[] args) { Console console = System.console(); console.printf("%s%n", "this is a test"); }
}</source>
Use Console class to read user input?
<source lang="java">
import java.io.Console; import java.util.Arrays; public class Main {
public static void main(String[] args) { Console console = System.console(); String username = console.readLine("Username: "); char[] password = console.readPassword("Password: "); if (username.equals("admin") && String.valueOf(password).equals("secret")) { console.printf("Welcome to Java Application %1$s.\n", username); Arrays.fill(password, " "); } else { console.printf("Invalid username or password.\n"); } }
}</source>