gpt4 book ai didi

java - 如何比较整数和文件名?

转载 作者:行者123 更新时间:2023-12-01 09:11:01 27 4
gpt4 key购买 nike

我正在尝试制作一个登录/密码程序,它会询问您是否有帐户,您也可以制作一个。
我所说的帐户是指程序会给您一个随机的 8 位数字。
我还有一个 FileWriter,它根据您提供的 ID 创建一个文件。我有一个 FileReader,它最终会读取您之前导出到文件的内容,以便您可以更新它。

我遇到的问题是,当我询问用户是否已经有帐户时,如果他们说是,则会询问用户他们的 UserID。

我的计划是,当它读取您的用户 ID 时,它会扫描我保存 .java 文件的文件夹,并查找与您的用户 ID 同名的 .txt 文件。例如,如果您创建了一个帐户,并且它为您提供的用户 ID 是 12345678,它将创建一个名为 12345678 的文件,然后当您输入用户 ID 时,它会扫描以查看该文件是否存在。

当前出现的问题是它打印

Error File Not Found(the catch String I wrote)

即使我的文件夹中有该文件。
我认为我比较 UserID 是否与任何文件名匹配的方式有问题。

“登录”类。

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

最佳答案

因此,您有一个文件输入,并且您想要比较文件的名称,因此您需要

String.valueOf(login).equals (input.getName());

如果您在

上遇到错误
File input = new File (String.valueOf (UserID));

然后请注意:例如,"2.txt" 与仅名为 "2" 的文件有很大不同(值得一提的是,Windows 隐藏了文件扩展名)默认情况下)

如果您没有提供文件的完整路径,那么该文件必须位于您的“类路径”中,如果您不理解,最好提供文件的完整路径。

关于java - 如何比较整数和文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40924947/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com