...
Code Block |
---|
|
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 user name: ");
String password = c.readLine("Enter your password: ");
if (!verify(login, password)) {
throw new IOExceptionSecurityException("Invalid Credentials");
}
// ...
}
// Dummy verify method, always returns true
private static final boolean verify(String login, String password) {
return true;
}
}
|
...
Code Block |
---|
|
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 user name: ");
char [] password = c.readPassword("Enter your password: ");
if (!verify(login, password)) {
throw new IOExceptionSecurityException("Invalid Credentials");
}
// Clear the password
Arrays.fill(password, ' ');
}
// Dummy verify method, always returns true
private static final boolean verify(String login, char[] password) {
return true;
}
}
|
...
Code Block |
---|
|
private void readIntoDirectBuffer() throws IOException {
ByteBuffer buffer = ByteBuffer.allocateDirect(16 * 1024);
FileChannel rdr = null;
try {
rdr = (new FileInputStream("file")).getChannel();
while (rdr.read(buffer) > 0) {
// Do something with the buffer
buffer.clear();
}
} finally {
rdr.close();
}
}
|
Note that manual clearing of the buffer data is mandatory because direct buffers are exempt from garbage collection.
...