繁体   English   中英

程序终止后,是否可以保存输入信息?

[英]Is there a way to save input information after the program terminates?

我是Java的新手,八月份才刚开始上高中课程。 我仍在学习基本信息,并对基本知识有大致的了解,例如JOptionPane,Scanner,Array和系统行。 我的问题是是否可以创建一个独立的Java程序,您可以双击桌面上的一个图标来启动它。 如果是这样,有没有办法创建只能通过密码访问它的文件转储? 我已经有一个基本的登录程序,该程序允许基于预定的用户和密码进行访问。 该程序的目标是在打算拥有该文件的人之间创建安全的(即使是基本的)文件共享,并禁止那些包含特定文件(.docx,.jpeg,.pptx等)的文件共享。 。)用于学校作业。 如果是这样,是否还有办法将对这些文件的访问限制为只能通过此程序访问?

这是我到目前为止的代码:

import javax.swing.JOptionPane.*;
import java.lang.Math.*;
import java.lang.System.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.JFrame;

public class UserLog extends JFrame  

{

public static void main(String[]Args) throws InterruptedException 
    {
    boolean isValid=false;
    while(!isValid)
        {
    // Components related to "login" field    
    JLabel label_loginname = new JLabel("Enter your login name:");    
    JTextField loginname = new JTextField(15);    
    // loginname.setText("EnterLoginNameHere"); 
    // Pre-set some text    
    // Components related to "password" field    
    JLabel label_password = new JLabel("Enter your password:");    
    JPasswordField password = new JPasswordField();    
    // password.setEchoChar('@'); 
    // Sets @ as masking character    
    // password.setEchoChar('\000'); 
    // Turns off masking    
    JCheckBox rememberCB = new JCheckBox("Remember me");

    Object[] array = {label_loginname,
    loginname,                       
    label_password,                       
    password,                       
    rememberCB};
    Object[] options = {"Login", "Cancel"};
    int res = JOptionPane.showOptionDialog(null,
                                            array,
                                            "Login",
                                            JOptionPane.YES_NO_OPTION,
                                            JOptionPane.QUESTION_MESSAGE,
                                            null,     //do not use a custom Icon
                                            options,  //the titles of buttons
                                            options[0]); //default button title

    // User hit Login    
    if (res == 0) 
        { 
            System.out.println( "Login" ); 
        }    
    // User hit CANCEL    
    if (res == 1) 
        { 
            System.out.println( "Canceled" ); 
        }    
    // User closed the window without hitting any button    
    if (res == JOptionPane.CLOSED_OPTION) 
        { 
            System.out.println( "CLOSED_OPTION" ); 
        }


    // Output data in "login" field, if any    
    String newloginname = loginname.getText();    
    String newpassword = new String(password.getPassword());    
    if (newloginname.equalsIgnoreCase("Cody_Coulter") && newpassword.equals("cheche1"))
        {
            System.out.println("Login Successful!");
            boolean selectedCB = rememberCB.isSelected();    
            System.out.println( "selectedCB: " + selectedCB );
            Thread.sleep(3000);
            Object[] array1= {"It's about time to choose"};
            Object[] options1= {"Leave", "Keep Going"};
            int res1 = JOptionPane.showOptionDialog(null,
                                            array1,
                                            "There",
                                            JOptionPane.YES_NO_OPTION,
                                            JOptionPane.QUESTION_MESSAGE,
                                            null,     //do not use a custom Icon
                                            options1,  //the titles of buttons
                                            options1[0]); //default button title
            if(res1==1)
                {
                    String name1 = JOptionPane.showInputDialog(null,
                                                        "What is your name?");
                    int length = 0;
                    length = newpassword.length();
                    String Pass = "*";
                    newpassword =newpassword.replaceAll(".","*");
                    System.out.println("Username: "+newloginname+"\nPassword: "+
                                        newpassword+"\nName: "+name1);
                }

        }
    else {
            JOptionPane.showMessageDialog(null,"Wrong Username or Password!");
            isValid=false;
         }
        }
    // Output data in "password" field, if any    
    // Output state of "remember me" check box    

    }

}

这只是该程序的登录屏幕,但我只希望能够:

  • 通过选择编辑用户或密码,例如输入旧密码:现在新密码:重复密码:并保存新密码。
  • 创建仅通过包含基本文件(例如docx,pptx等)的此程序访问的文件转储
  • 仅通过拥有管理员密码才能编辑用户名,密码或向程序添加新用户。
  • 如果我拥有该程序的唯一帐户,而其他人想要一个帐户,则读取的行将是:

     Username: _____ Password: _____ Retype Password:_____ Authentication: _____ 

    然后创建一个永久账户。

很抱歉提出了非正统的问题,但我非常好奇,而且对这些委员会还是陌生的。 我只想知道java是否有可能,如果可以,我可以在哪里参考资料来学习/自学。

是的,这是可能的,但我认为一篇文章中有太多要回答的问题。

您应该查看的是Java Core Library中的Scanner类。 使用Scanner类,您可以读取和读取文件。 在此处搜索一些提示。 因此,使用Scanner,您可以拥有一个写入了密码的文件(保持文件受保护),并且可以通过在文件上重写密码(并从同一文件读取)来更改密码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM