JAVA登录页面;如何使用Read Notepad两次



我正在询问我的JAVA程序,我正在处理登录页面。在我的密码里。我已经启动了读取方法来获得数组列表。然后在注册按钮中,一旦我已经输入了数据,顺便说一句,我使用了bufferedWriter,所以它会附加到我现有的.txt文件上。

然后是我的问题,数组列表已经没有更新,因为阵列中的数据只是在启动中,这意味着只有从程序开始,如果我已经有了新的输入,它将在我的登录方法中变成无效凭据。。我试着在注册按钮方法和私有类方法中复制粘贴我的底漆,但仍然不起作用,请帮忙,非常感谢。

这是我的扫描仪方法代码:

private void initialize() throws FileNotFoundException {
String datas = "";
Scanner notePad = new Scanner(new File("loginData.txt"));
List<String> temps = new ArrayList<String>();
while (notePad.hasNext()) 
{
datas = notePad.next();
temps.add(datas);
}
notePad.close();
String[] dataFile = temps.toArray(new String[0]);
int mainCount = dataFile.length-1;

下面的帧代码包括我的按钮。跳到注册按钮方法,这是代码。

JButton registerButton = new JButton("REGISTER");
registerButton.setFont(new Font("Arial", Font.BOLD, 12));
registerButton.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) 
{
int countRegister = 0;
while (!registerEmail.getText().equalsIgnoreCase(dataFile[countRegister]) && mainCount >= countRegister)
{
countRegister = countRegister + 2;
if (mainCount < countRegister) 
{
break;
}
}
if (mainCount <= countRegister) // No Existing Account
{   
try {
FileWriter writer = new FileWriter("loginData.txt", true);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
bufferedWriter.newLine();
bufferedWriter.write(registerEmail.getText());
bufferedWriter.newLine();
bufferedWriter.write(registerPassword.getText());
bufferedWriter.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
JOptionPane.showMessageDialog(frame, "Registered successfully, you can now login.", "Success", JOptionPane.INFORMATION_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(frame, "Sorry, you have entered an existing account.", "Error", JOptionPane.ERROR_MESSAGE);   // Existing Account
}
}
});
registerButton.setBounds(194, 502, 97, 23);
frmImma.getContentPane().add(registerButton);

您可以创建一个方法来获取数据并进行比较,然后您的逻辑调用该方法来获取刷新输入

private String[] data = new String[0];
private void selectData() throws FileNotFoundException {
Scanner scanner = new Scanner(new File("loginData.txt"));
List<String> temps = new ArrayList<String>();
while (notePad.hasNextLine()) {
temps.add(notePad.nextLine());
}
scanner.close();
dataFile = new String[temps.size()];
dataFile = arrlist.toArray(dataFile);
}

,您可以从JDK8+使用NIO

private void selectData() throws IOException{
dataFile = Files.lines(Paths.get(new 
File("C:\data.txt").getPath())).toArray(String[]::new);
}

最新更新