Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Netbeans java程序重复一个文本文件而不是注销选项_Netbeans - Fatal编程技术网

Netbeans java程序重复一个文本文件而不是注销选项

Netbeans java程序重复一个文本文件而不是注销选项,netbeans,Netbeans,我正在为一个java初学者班做我的项目。该程序是针对动物园的身份验证程序。我的程序运行良好,除了一件事。用户名和密码经过身份验证后,应该显示一个文件,上面写着“hello zoo keeper…”,然后要求用户注销。我的问题是,在它显示正确的文本文件后,它不会要求注销。它将文本文件再重复两次 例如: 喂,动物园管理员 作为动物园管理员,您可以访问所有动物的信息和 他们的日常监控日志。这可以让你追踪它们的进食情况 习惯、栖息地条件和一般福利 喂,动物园管理员 作为动物园管理员,您可以访问所有动物的

我正在为一个java初学者班做我的项目。该程序是针对动物园的身份验证程序。我的程序运行良好,除了一件事。用户名和密码经过身份验证后,应该显示一个文件,上面写着“hello zoo keeper…”,然后要求用户注销。我的问题是,在它显示正确的文本文件后,它不会要求注销。它将文本文件再重复两次

例如:

喂,动物园管理员

作为动物园管理员,您可以访问所有动物的信息和 他们的日常监控日志。这可以让你追踪它们的进食情况 习惯、栖息地条件和一般福利

喂,动物园管理员

作为动物园管理员,您可以访问所有动物的信息和 他们的日常监控日志。这可以让你追踪它们的进食情况 习惯、栖息地条件和一般福利

喂,动物园管理员

作为动物园管理员,您可以访问所有动物的信息和 他们的日常监控日志。这可以让你追踪它们的进食情况 习惯、栖息地条件和一般福利

生成成功(总时间:15秒)

我会把我的代码放在下面,并对我能得到的任何帮助表示感谢

     package AuthenticationSystem;

     //import necessary java tools
     import java.io.FileInputStream;
     import java.io.BufferedReader;
     import java.io.InputStreamReader;
     import java.security.MessageDigest;
     import java.util.Scanner;
     import javax.swing.JOptionPane;

     public class Authenticationsystem {

    public static void main(String[] args) throws Exception {

    Scanner scnr = new Scanner(System.in);

    // fileinput reading txt iles
    FileInputStream fis = null;
    InputStreamReader isr = null;
    BufferedReader br = null;
    String txtline = "";

    //credentials elements
    final int NUM_ELEMENTS = 6;
    String[] storedUsername = new String[NUM_ELEMENTS];
    String[] role = new String[NUM_ELEMENTS];
    String[] hashPassword = new String[NUM_ELEMENTS];
    String username = "";
    String password = "";
    String hash = "";

    int i = 0;
    int j = 0;
    int user = 0;
    boolean verified = false;

    // user / pw array
    storedUsername[i] = "griffin.keyes";
    hashPassword[i] = "108de81c31bf9c622f76876b74e9285f";
    ++i;
    storedUsername[i] = "rosario.dawson";
    hashPassword[i] = "3e34baa4ee2ff767af8c120a496742b5";
    ++i;
    storedUsername[i] = "bernie.gorilla";
    hashPassword[i] = "a584efafa8f9ea7fe5cf18442f32b07b";
    ++i;
    storedUsername[i] = "donald.monkey";
    hashPassword[i] = "17b1b7d8a706696ed220bc414f729ad3";
    ++i;
    storedUsername[i] = "jerome.grizzlybear";
    hashPassword[i] = "3adea92111e6307f8f2aae4721e77900";
    ++i;
    storedUsername[i] = "bruce.grizzlybear";
    hashPassword[i] = "0d107d09f5bbe40cade3de5c71e9e9b7";
    ++i;

    //dialog box entry
    JOptionPane.showMessageDialog(null, "All entries are case sensitive.\n"
            + "Enter \"quit\" at any time to exit.", "Authentication System", JOptionPane.PLAIN_MESSAGE);

    // enter username / password
    username = (String) JOptionPane.showInputDialog(null, "Enter username: ", "Authentication System", JOptionPane.PLAIN_MESSAGE);
    if (username.equals("quit")) {
        JOptionPane.showMessageDialog(null, "You have chosen to exit. Goodbye.", "Authentication System", JOptionPane.WARNING_MESSAGE);
        return;
    }
    password = (String) JOptionPane.showInputDialog(null, "Enter password: ", "Authentication System", JOptionPane.PLAIN_MESSAGE);
    if (password.equals("quit")) {
        JOptionPane.showMessageDialog(null, "You have chosen to exit. Goodbye.", "Authentication System", JOptionPane.WARNING_MESSAGE);
        return;
    }

    //exit after three checks
    for (i = 0; i < 3; ++i) {

        // check user credentials 
        for (j = 0; j < NUM_ELEMENTS; ++j) {
            if (username.equals(storedUsername[j])) {
                String original = password;  // md5digest
                MessageDigest md = MessageDigest.getInstance("MD5");
                md.update(original.getBytes());
                byte[] digest = md.digest();
                StringBuilder sb = new StringBuilder();
                for (byte b : digest) {
                    sb.append(String.format("%02x", b & 0xff));
                }

                verified = true;
                user = j;
                hash = sb.toString();
            }
        }
        //if wrong entry, re-enter
        if (!hash.equals(hashPassword[user])) {
            verified = false;
            if (i < 2) {
                JOptionPane.showMessageDialog(null, "Invalid user credentials. " + (2 - i)
                        + " attempt(s) remaining.", "Authentication System", JOptionPane.PLAIN_MESSAGE);
                username = (String) JOptionPane.showInputDialog(null, "Enter username: ", "Authentication System",
                        JOptionPane.PLAIN_MESSAGE);
                if (username.equals("quit")) {
                    JOptionPane.showMessageDialog(null, "You have chosen to exit. Goodbye.", "Authentication System",
                            JOptionPane.WARNING_MESSAGE);
                    break;
                }
                password = (String) JOptionPane.showInputDialog(null, "Enter password: ", "Authentication System",
                        JOptionPane.PLAIN_MESSAGE);
                if (password.equals("quit")) {
                    JOptionPane.showMessageDialog(null, "You have chosen to exit. Goodbye.", "Authentication System",
                            JOptionPane.WARNING_MESSAGE);
                    break;
                }
            }
            //closes program if tries exceed 3
            if ((!verified) && (i == 2)) {
                JOptionPane.showMessageDialog(null, "Could not verify credentials. Goodbye.", "Authentication System",
                        JOptionPane.ERROR_MESSAGE);
                break;
            }
        } // if user credentials work
        else {

            //get input from txt files
            // user if zookeeper
            if (username.equals(storedUsername[0]) || username.equals(storedUsername[3])) {
                fis = new FileInputStream("src\\AuthenticationSystem\\zookeeper.txt");
                isr = new InputStreamReader(fis);
                br = new BufferedReader(isr);
                while ((txtline = br.readLine()) != null) {
                    System.out.println(txtline);

                }
            } //user is a veternarian
            else if (username.equals(storedUsername[2]) || username.equals(storedUsername[4])) {
                fis = new FileInputStream("src\\AuthenticationSystem\\veterinarian.txt");
                isr = new InputStreamReader(fis);
                br = new BufferedReader(isr);
                while ((txtline = br.readLine()) != null) {
                    System.out.println(txtline);
                }
            } //user is an admin
            else {
                fis = new FileInputStream("src\\AuthenticationSystem\\admin.txt");
                isr = new InputStreamReader(fis);
                br = new BufferedReader(isr);
                while ((txtline = br.readLine()) != null) {
                    System.out.println(txtline);

                }
            }
            System.out.println();
            class logout {

                public void logout(String original) throws Exception {
                    int i = 0;
                    Scanner input = new Scanner(System.in);
                    while (i == 0) {
                        System.out.println("To log out please press 1 then the enter key");
                        int result = input.nextInt();
                        if (result == 1) {
                            System.out.println("You have logged out.  Have a great day!");
                            i = 1;
                        } else {
                            System.out.println("You are still logged in.");
                        }
                    }
                }
            }

        }
    }
}
包认证系统;
//导入必要的java工具
导入java.io.FileInputStream;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.security.MessageDigest;
导入java.util.Scanner;
导入javax.swing.JOptionPane;
公共类认证系统{
公共静态void main(字符串[]args)引发异常{
扫描仪scnr=新扫描仪(System.in);
//文件输入读取txt文件
FileInputStream fis=null;
InputStreamReader isr=null;
BufferedReader br=null;
字符串txtline=“”;
//凭证元素
最终int NUM_元素=6;
String[]storedUsername=新字符串[NUM_元素];
String[]角色=新字符串[NUM_元素];
String[]hashPassword=新字符串[NUM_元素];
字符串username=“”;
字符串密码=”;
字符串哈希=”;
int i=0;
int j=0;
int user=0;
布尔验证=假;
//用户/pw阵列
storedUsername[i]=“格里芬·凯斯”;
hashPassword[i]=“108DE81C31BF9C622F7687B74E9285F”;
++一,;
storedUsername[i]=“rosario.dawson”;
hashPassword[i]=“3e34baa4ee2ff767af8c120a496742b5”;
++一,;
storedUsername[i]=“伯尼大猩猩”;
hashPassword[i]=“a584efafa8f9ea7fe5cf18442f32b07b”;
++一,;
storedUsername[i]=“donald.monkey”;
hashPassword[i]=“17B1B7D8A7066966ED220BC414F729AD3”;
++一,;
storedUsername[i]=“jerome.grizzlybear”;
hashPassword[i]=“3adea92111e6307f8f2aae4721e77900”;
++一,;
storedUsername[i]=“bruce.grizzlybear”;
hashPassword[i]=“0d107d09f5bbe40cade3de5c71e9e9b7”;
++一,;
//对话框条目
JOptionPane.showMessageDialog(null,“所有条目都区分大小写。\n”
+“随时输入\“退出\”退出。”,“身份验证系统”,JOptionPane.PLAIN_消息);
//输入用户名/密码
用户名=(字符串)JOptionPane.showInputDialog(null,“输入用户名:”,“身份验证系统”,JOptionPane.PLAIN\u消息);
if(username.equals(“退出”)){
showMessageDialog(null,“您已选择退出。再见”,“身份验证系统”,JOptionPane.WARNING_消息);
返回;
}
password=(字符串)JOptionPane.showInputDialog(null,“输入密码:”,“身份验证系统”,JOptionPane.PLAIN_消息);
if(password.equals(“退出”)){
showMessageDialog(null,“您已选择退出。再见”,“身份验证系统”,JOptionPane.WARNING_消息);
返回;
}
//三次检查后退出
对于(i=0;i<3;++i){
//检查用户凭据
对于(j=0;j// user / pw array


storedUsername[i] = "griffin.keyes";
hashPassword[i] = "108de81c31bf9c622f76876b74e9285f";
++i;
storedUsername[i] = "rosario.dawson";
hashPassword[i] = "3e34baa4ee2ff767af8c120a496742b5";
++i;
storedUsername[i] = "bernie.gorilla";
hashPassword[i] = "a584efafa8f9ea7fe5cf18442f32b07b";
++i;
storedUsername[i] = "donald.monkey";
hashPassword[i] = "17b1b7d8a706696ed220bc414f729ad3";
++i;
storedUsername[i] = "jerome.grizzlybear";
hashPassword[i] = "3adea92111e6307f8f2aae4721e77900";
++i;
storedUsername[i] = "bruce.grizzlybear";
hashPassword[i] = "0d107d09f5bbe40cade3de5c71e9e9b7";
++i;
//exit after three checks]
for (i = 0; i < 3; ++i) {

    // check user credentials 
    for (j = 0; j < NUM_ELEMENTS; ++j) {
        if (username.equals(storedUsername[j])) {