Я хочу помочь себе, я создал файл, который создаст пользовательский файл, потому что я планирую создать игру. У него есть логин, который записывает имя пользователя, отображаемое имя и пароль. Он записывает его в файл, названный в честь имени для входа.
Теперь я хочу также создать скрипт входа в систему, используя Java. Я хочу знать, в частности, как читать строку и уже введенный пароль.
У меня так, что когда он создает файл, он сохраняет пароль дважды, один раз как «playerPass» и один раз как «currPass», чтобы, если планируется сменить пароль (который я буду использовать из сценария входа в систему) ), тогда currPass будет читаться как правильный пароль с использованием переменной playerPass. В любом случае, я хотел бы, чтобы он использовал BufferedReader и FileReader для чтения строки, указывающей пароль и текущий пароль, чтобы можно было войти в систему.
Может ли кто-нибудь мне помочь с этим? Я все еще в какой-то степени новичок.
PS. Я могу настроить код, мне просто нужно небольшое объяснение, КАК его кодировать lol.
Переменные:
playerLogName
playerName
playerPass
currPass
Имена файлов:
Login.java
CharacterFileCreator.java
СДЕЛАНО ДОПОЛНЕНИЕ, он наполовину работает, но он блокируется (используя Dr.Web) после ввода пароля независимо от того, что я делаю, неверный или правильный, и System.out.println () никогда выполняется, даже если пароль неверный. Проверьте это:
import java.util.Scanner;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileNotFoundException;
class Login {
public static void LogIn(){
boolean loggedIn = false;
loggedIn = true;
System.out.println("You are now logged in!");
}
public static void main(String[] args) {
System.out.println("What is your login name?");
Scanner charLogName = new Scanner(System.in);
String playerLogName = charLogName.nextLine();
boolean charFileFound = false;
BufferedReader characterfile = null;
try {
characterfile = new BufferedReader(new FileReader("./game/characters/" + playerLogName + ".txt"));
charFileFound = true;
}
catch (FileNotFoundException fileex1) {}
if(charFileFound == false){
System.out.println("Login name does not exist!");
}
else
{
System.out.println(playerLogName + ": is your username, what is your password?");
Scanner charPassword = new Scanner(System.in);
String playerPass = charPassword.nextLine();
String line = "";
String token = "";
String token2 = "";
int ReadMode = 0;
try {
line = characterfile.readLine();
} catch (IOException ioexception) {
System.out.println(playerLogName + ": error loading file.");
}
while (line != null) {
line = line.trim();
int spot = line.indexOf("=");
if (spot > -1) {
token = line.substring(0, spot);
token = token.trim();
token2 = line.substring(spot + 1);
token2 = token2.trim();
switch (ReadMode) {
case 1:
if (token.equals("character-password")) {
if (playerPass.equals(token2)) {
LogIn();
} else {
System.out.println("You entered an incorrect password!");
}
break;
}
}
} else {
if(line.equals("[ACCOUNT]")) {
ReadMode = 1;
}
else if(line.equals("[EOF]")) {
try {
characterfile.close();
} catch (IOException ioexception) {
}
}
}
}
}
}
}
EDIT:
ОБРАЗЕЦ ФАЙЛА:
[ACCOUNT]
character-loginname = SampleFile
character-password = samplepassword
[EOF]