Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用文本文件更改java中用户帐户的密码?_Java_File Io_Text Files - Fatal编程技术网

使用文本文件更改java中用户帐户的密码?

使用文本文件更改java中用户帐户的密码?,java,file-io,text-files,Java,File Io,Text Files,我有个问题,希望能找到解决办法 现在,我已经创建了一个简单的程序,使用java中的文本文件更改用户帐户的密码 现在我应该输入该帐户的用户名,然后更改该帐户的密码,但它显示了一个错误 这是我的密码: import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Objects; import java.util.S

我有个问题,希望能找到解决办法

现在,我已经创建了一个简单的程序,使用java中的文本文件更改用户帐户的密码

现在我应该输入该帐户的用户名,然后更改该帐户的密码,但它显示了一个错误

这是我的密码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Objects;
import java.util.Scanner;

public class Test6 {
public static void main(String[] args)throws IOException {

    String newPassword=null;
    boolean checked = true;

 File f= new File("C:\\Users\\فاطمة\\Downloads\\accounts.txt");// path to your file
 File tempFile = new File("C:\\Users\\فاطمة\\Downloads\\accounts2.txt"); // create a temp file in same path
 BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
 Scanner sc = new Scanner(f);
 System.out.println("Enter account username you want to edit password?");
 Scanner sc2 = new Scanner(System.in);
 String username = sc2.next();
 while(sc.hasNextLine())
 {
     String currentLine= sc.nextLine();
     String[] tokens = currentLine.split(" ");
     if(Objects.equals(Integer.valueOf(tokens[0]), username) && checked)
     {
         sc2.nextLine();                          
         System.out.println("New Password:");
         newPassword= sc2.nextLine();
         currentLine = tokens[0]+" "+newPassword;
         checked = false;
     }
     writer.write(currentLine + System.getProperty("line.separator"));

 }
 writer.close(); 
 sc.close();
 f.delete();
 boolean successful = tempFile.renameTo(f);

}
}
错误向我显示:

Exception in thread "main" java.lang.NumberFormatException: For input string: "HAMADA"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at Test6.main(Test6.java:25)
我的文本文件的格式如下:

HAMADA 115599
JOHNY 4477100

将第25行的
Integer.valueOf(令牌[0])
更改为仅
tokens[0]

在代码中,当您应该获取用户名的
字符串
表示形式时,尝试获取用户名的整数值。您不需要
整数.valueOf()
。(由于尝试获取非整数类型的
Integer
表示,因此引发错误。)


另一方面,您不应该使用密码存储文本文件,尤其是当密码和文件都未加密时。改用数据库。

@没问题。我很高兴这有帮助!