我試圖做一個登錄名/密碼程序,詢問你是否有一個帳戶,你也可以做一個。
通過帳戶我的意思是程序會給你一個隨機的8位數字。
我也有一個FileWriter,它根據您提供的ID創建一個文件。我有一個FileReader,它最終將讀取您以前導出到您的文件的內容,以便您可以更新它。如何比較整數和文件名?
我遇到的問題是,當我詢問用戶他們是否有帳戶時,如果他們說是,它會詢問用戶的用戶ID。
我的計劃是,當它讀取您的用戶ID時,它會掃描保存在我的.java文件中的文件夾,然後查找與您的用戶ID具有相同名稱的.txt文件。例如,如果您創建了一個帳戶,並且它提供的用戶ID是12345678,它將創建一個名爲12345678的文件,然後當您輸入用戶ID時,它將掃描以查看該文件是否存在。
目前出現的問題是它打印
錯誤文件找不到(捕捉字符串我寫的)
,即使我有文件夾中的該文件。
我認爲我的比較方式有問題,看看UserID是否與任何文件名匹配。
「Login」類。
import java.awt.*;
import hsa.Console;
import java.util.Random;
import java.io.*;
import java.io.File;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.FileNotFoundException;
public class Login
{
static Console c;
static Login player1;
public static void main (String[] args)
{
player1 = new Login();
player1.FileReaderTest (25756326);
//player1.Userlogin(); //I think it has something to do with this
} // main method
public void Userlogin (File input)
{
c = new Console();
Random rand = new Random();
c.println ("Hello do you have an account?");
String Q1 = c.readLine();
Q1 = Q1.toUpperCase();
if (Q1.equals ("YES"))
{
c.println ("Please input your User ID");
int login = c.readInt();
if (String.valueOf(login).equals (input))//I think it has something to do with this
{
try
{
FileReader reader = new FileReader (input);
BufferedReader buf = new BufferedReader (reader);
String line1 = buf.readLine();
String line2 = buf.readLine();
buf.close();
c.println (line1);
c.println (line2);
}
catch (FileNotFoundException e)
{
c.println ("Error File Not Found");
}
catch (Exception e)
{
c.println ("ERROR");
}
}
}
else if (Q1.equals ("NO"))
{
c.println ("Please enter your name ");
String name = c.readLine();
int UserID = rand.nextInt (99999999);
c.println ("Your User ID is " + UserID);
player1.FileCreation (UserID);
player1.FileReaderTest (UserID);
}
while (!Q1.equals ("YES") && !Q1.equals ("NO")) //While Q1 != YES || NO
{
c.println ("Please Answer the question with Yes or No");
c.println ("Hello do you have an account?");
String Q2 = c.readLine();
Q2 = Q2.toUpperCase();
if (Q2.equals ("YES"))
{
c.println ("Ok lets start");
break;
}
else if (Q2.equals ("NO"))
{
c.println ("Please enter your name ");
String name = c.readLine();
int UserID = rand.nextInt (89999999) + 10000000;
c.println ("Your User ID is " + UserID);
player1.FileCreation (UserID);
player1.FileReaderTest (UserID);
break;
}
} //While Q1 != YES || NO
} //Public void Main
public void FileReaderTest (int UserID)
{
File input = new File (String.valueOf (UserID));
player1.Userlogin (input);
try
{
FileReader reader = new FileReader (input);
BufferedReader buf = new BufferedReader (reader);
String line1 = buf.readLine();
String line2 = buf.readLine();
buf.close();
c.println (line1);
c.println (line2);
}
catch (FileNotFoundException e)
{
c.println ("Error File Not Found");
}
catch (Exception e)
{
c.println ("ERROR");
}
}
public void FileCreation (int UserID)
{
try
{
Writer writer = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (String.valueOf (UserID)), "utf-8"));
}
catch (IOException ex)
{
}
}
} // Login class
如何比較字符串與文件? –
我不知道這個'hsa.Console'類正在做什麼。 –
您需要將其與文件名相比較,而不是文件 – Jobin