Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java KeyEvent.VK+;int i,是否可以使用Bot输出?_Java_Bufferedreader_Keyevent - Fatal编程技术网

Java KeyEvent.VK+;int i,是否可以使用Bot输出?

Java KeyEvent.VK+;int i,是否可以使用Bot输出?,java,bufferedreader,keyevent,Java,Bufferedreader,Keyevent,从昨天开始,我在做一个程序,它可以永久保存一个密码,所以它只能使用一次。保存的密码将在以后通过键盘输出打印出来,这就是为什么我想,我从一个数组开始。其他问题中的许多人告诉我,他们会使用ObjectArray或类似的东西。我对Java很陌生,所以我非常感谢您的帮助。顺便说一句,如果你有什么建议,我会很感激的,如果它更深入一点的话。 这是代码 Robot bot = new Robot(); BufferedReader dmc = new BufferedReader(new InputStrea

从昨天开始,我在做一个程序,它可以永久保存一个密码,所以它只能使用一次。保存的密码将在以后通过键盘输出打印出来,这就是为什么我想,我从一个数组开始。其他问题中的许多人告诉我,他们会使用ObjectArray或类似的东西。我对Java很陌生,所以我非常感谢您的帮助。顺便说一句,如果你有什么建议,我会很感激的,如果它更深入一点的话。 这是代码

Robot bot = new Robot();
BufferedReader dmc = new BufferedReader(new InputStreamReader(System.in));

System.out.println("How many digits has your Password?");
String digit = dmc.readLine();
int d = Integer.parseInt(digit);
String[] password = new String[d];
System.out.println("Please enter your Password in single letters.");

int i = 0;
while (password[d - 1] == null) {
    password[i] = dmc.readLine();
    i++;
}

int j = 0;
while(j != d){
    password[j] = "KeyEvent.VK_" + password[j];
    j++;
}

糟糕的是,这不能正常工作。

出于安全原因,您应该避免将密码存储在字符串中。你可以读更多


谢谢,这使它变得简单了一点,但我仍然不能将密码打印为键盘输出,因为它是System.out.println,而不是KeyEvent。你说的“键盘输出”是什么意思。键盘是一个输入设备。我的意思是,对于System.out.println,您只在命令部分写入,这意味着如果您想在另一个线程上写入内容,它没有实际效果。例如,我已经完全编译了这段代码,并启动了一个需要输入密码的程序。对于System.out.Println,它不会写入任何内容,因为它是系统输出。通过KeyEvent,它模拟键盘输入,因此它会写入一些内容。我承认“键盘输出”有点混乱和错误:D
BufferedReader dmc = new BufferedReader(new InputStreamReader(System.in));

System.out.println("How many digits has your Password?");
String digit = dmc.readLine();
int d = Integer.parseInt(digit);
char[] password = new char[d];
System.out.println("Please enter your Password in single letters.");

dmc.read(password);

Stream.of(password).forEach(System.out::println);