我正在写一个Java程序,它是一个密码验证器。用户输入一个密码,然后要求通过再次输入来确认密码。如果第二个密码与第一个密码匹配,则密码将被确认并设置为密码变量。但如果密码不匹配,则输入的第二个密码将被记录并记录在一个预先存在的txt文件中。此外,循环将再次开始,并要求用户重新输入密码并确认。
我试过创建一个文件,然后在else if条件下写入它,然而,这意味着每次用户输入错误的密码时,都会再次创建txt文件,并且只记录最后输入的密码,而不是输入的错误密码的整个列表。
下面是我的代码。
package passwordAuthenticator.java;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.Formatter;
public class passwordAuthenticator {
public static void main(String[] args) {
// TODO Auto-generated method stub
String password;
try {
File myObj = new File("Passwords.txt");
if (myObj.createNewFile()) {
System.out.println("File created: " + myObj.getName());
} else {
System.out.println("File already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
while(true){
System.out.println("Please enter password: ");
Scanner sc = new Scanner(System.in);
String firstPassword = sc.nextLine();
System.out.println("Please confirm password: ");
Scanner sc1 = new Scanner(System.in);
String secondPassword = sc.nextLine();
if(firstPassword.equals(secondPassword)) {
System.out.println("Password confirmed.");
password = secondPassword;
break;
} else if(firstPassword != secondPassword) {
try {
FileWriter myWriter = new FileWriter("Passwords.txt");
myWriter.write(secondPassword);
myWriter.close();
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
System.out.println("\nPasswords are not a match. Retry!\n");
}
}
}
}
谢谢你花时间和我一起看这个。
2条答案
按热度按时间nhn9ugyo1#
你的程序运行得很好。唯一的变化是这个。
您应该使用此构造函数。只需添加
true
作为最后一个参数这是描述
4nkexdtk2#
**public FileWriter(字符串文件名,布尔值追加)**应该可以为您工作。