[英]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
}
}
这只是该程序的登录屏幕,但我只希望能够:
如果我拥有该程序的唯一帐户,而其他人想要一个帐户,则读取的行将是:
Username: _____ Password: _____ Retype Password:_____ Authentication: _____
然后创建一个永久账户。
很抱歉提出了非正统的问题,但我非常好奇,而且对这些委员会还是陌生的。 我只想知道java是否有可能,如果可以,我可以在哪里参考资料来学习/自学。
是的,这是可能的,但我认为一篇文章中有太多要回答的问题。
您应该查看的是Java Core Library中的Scanner类。 使用Scanner类,您可以读取和读取文件。 在此处搜索一些提示。 因此,使用Scanner,您可以拥有一个写入了密码的文件(保持文件受保护),并且可以通过在文件上重写密码(并从同一文件读取)来更改密码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.