我想自己幫忙,我製作了一個文件來創建一個用戶文件,因爲我打算製作一個遊戲。它有一個登錄名,寫入登錄名,顯示名稱和密碼。它將它寫出到以登錄名稱命名的文件中。Java如何閱讀特定行
現在我想使用java編寫一個登錄腳本。我想知道具體如何閱讀該行和已輸入的密碼。
我擁有它,因此當它創建文件時,它將密碼保存兩次,一次作爲「playerPass」,一次作爲「currPass」,這樣,如果有人計劃更改密碼(我將從登錄腳本),那麼使用playerPass變量將currPass作爲正確的密碼讀取。無論如何,我希望它使用BufferedReader和FileReader讀取指示密碼和當前密碼的行,以便可以登錄。
有人可以幫我解決這個問題嗎?我仍然是一個新手。
PS。我可以調整代碼,我只需要一些關於如何編寫代碼的解釋。
變量:
playerLogName
playerName
playerPass
currPass
文件名:
Login.java
CharacterFileCreator.java
的一個相加,得到了它一半的工作,但在我輸入密碼,不管它鎖定了(使用Java博士)什麼我這樣做,不正確或正確,和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) {
}
}
}
}
}
}
}
編輯:
樣本文件:
[ACCOUNT]
character-loginname = SampleFile
character-password = samplepassword
[EOF]
在你的問題中顯示一個示例文件。 – 2011-12-17 11:09:22
*「抱歉的傢伙,它的4:15在這裏哈哈。」*不是一個有效的藉口。如果你的立場是你必須爲一個不好的問題找藉口,那麼這是一個好兆頭,你不應該問這個問題,或者應該延遲詢問它,直到你適合這樣做。 -1 – 2011-12-17 11:17:37