This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
java:console_read [2015/06/20 02:29] gthanos [Διαβάζοντας από το System.in] |
java:console_read [2016/02/26 11:15] (current) |
||
---|---|---|---|
Line 57: | Line 57: | ||
</WRAP> | </WRAP> | ||
- | ===== Διαβάζοντας με χρήση της κλάσης Console ===== | + | ===== Διαβάζοντας με χρήση της κλάσης java.io.Console ===== |
+ | |||
+ | Μπορείτε να διαβάσετε ή να γράψετε στην κονσόλα με την βοήθεια της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/io/Console.html|java.io.Console]]. Το παρακάτω παράδειγμα είναι από το site της Oracle και δείχνει την χρήση της κλάσης μέσω των μεθόδων **readLine** και **readPassword**. | ||
+ | |||
+ | <code java Password.java> | ||
+ | import java.io.Console; | ||
+ | import java.util.Arrays; | ||
+ | import java.io.IOException; | ||
+ | |||
+ | public class Password { | ||
+ | |||
+ | public static void main (String args[]) throws IOException { | ||
+ | |||
+ | Console c = System.console(); | ||
+ | if (c == null) { | ||
+ | System.err.println("No console."); | ||
+ | System.exit(1); | ||
+ | } | ||
+ | |||
+ | String login = c.readLine("Enter your login: "); | ||
+ | char [] oldPassword = c.readPassword("Enter your old password: "); | ||
+ | |||
+ | if (verify(login, oldPassword)) { | ||
+ | boolean noMatch; | ||
+ | do { | ||
+ | char [] newPassword1 = c.readPassword("Enter your new password: "); | ||
+ | char [] newPassword2 = c.readPassword("Enter new password again: "); | ||
+ | noMatch = ! Arrays.equals(newPassword1, newPassword2); | ||
+ | if (noMatch) { | ||
+ | c.format("Passwords don't match. Try again.%n"); | ||
+ | } else { | ||
+ | change(login, newPassword1); | ||
+ | c.format("Password for %s changed.%n", login); | ||
+ | } | ||
+ | Arrays.fill(newPassword1, ' '); | ||
+ | Arrays.fill(newPassword2, ' '); | ||
+ | } while (noMatch); | ||
+ | } | ||
+ | |||
+ | Arrays.fill(oldPassword, ' '); | ||
+ | } | ||
+ | |||
+ | // Dummy change method. | ||
+ | static boolean verify(String login, char[] password) { | ||
+ | // This method always returns | ||
+ | // true in this example. | ||
+ | // Modify this method to verify | ||
+ | // password according to your rules. | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | // Dummy change method. | ||
+ | static void change(String login, char[] password) { | ||
+ | // Modify this method to change | ||
+ | // password according to your rules. | ||
+ | } | ||
+ | } | ||
+ | </code> | ||