1

databsesを使用せずにJavaで簡単なログインシステムを作成したい(PS。機密データはありません)次のようなことをしたい:

-1)I create a .txt file
-2)put the username and password like this

*user 
*pass 
*user
*pass
"
"

スキャナーを使用してこれを行うことは可能ですか?私は初心者なので助けてください

前もって感謝します

4

3 に答える 3

1
import java.io.FileInputStream;    
import java.io.IOException;    
import java.util.Scanner;    
/**
 *
 * @author Abhishek Banerjee
 */    
public class NewMain {        
    public static void main(String[] args) throws IOException {
        Scanner s1,s2;
        s1=new Scanner(new FileInputStream("d:\\log.txt"));
        s2=new Scanner(System.in);
        boolean flag=false;
        String name,pword,n,p;
        System.out.println("Enter name:");
        n=s2.next();
        System.out.println("Enter password:");
        p=s2.next();
        while(s1.hasNext()) {
            name=s1.next();
            pword=s1.next();
            if(n.equals(name) && p.equals(pword)) {
                System.out.println("You are logged in.");
                flag=true;
                break;
            }                
        }
        if(!flag)
        System.out.println("Incorrect password.");
    }
}
于 2012-08-18T10:40:30.507 に答える
1

BufferedWriter出力ストリームをラップするために使用できます。

public static void main(String[] args) {
    BufferedWriter writer = null;
    try {
         // create a BufferedWriter for the text file
         writer = new BufferedWriter(new FileWriter("passwords.txt"));

         // write text
         writer.write("Tudor");
         writer.newLine();
         writer.write("Tudorspassword");
         //etc.
    } catch (IOException e) {
        System.out.println("Failed to create file.");
        e.printStackTrace();
    } finally {
        if(writer != null) {
            try {
                writer.close();
            } catch (IOException e) {
                System.out.println("Failed to close file.");
                e.printStackTrace();
            }
        }
    }
}

読み方は次のとおりです。

public static void main(String[] args) {
    BufferedReader rdr = null;
    try {
        rdr = new BufferedReader(new FileReader("passwords.txt"));
        String name = rdr.readLine();
        String password = rdr.readLine();
        while(name != null && password != null) {
            System.out.println(name);
            System.out.println(password);               
            name = rdr.readLine();
            password = rdr.readLine();  
        }
    } catch (FileNotFoundException e) {
        System.out.println("Failed to open file.");
        e.printStackTrace();
    } catch (IOException e) {
        System.out.println("Failed to correctly read file.");
        e.printStackTrace();
    } finally {
        if(rdr != null) {
            try {
                rdr.close();
            } catch (IOException e) {
                System.out.println("Failed to close file.");
                e.printStackTrace();
            }
        }
    }
}
于 2012-08-18T10:25:00.297 に答える
0

User以下のようなクラスを作成します

 class User implements Serializable 
{
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

}

Hashmap初めてファイルにシリアル化できるインスタンスを作成します。

 private HashMap<String, User> hashMap = new HashMap<String, User>();

このマップを使用して、ユーザー名に基づいてパスワードを検索します。

于 2012-08-18T10:20:48.130 に答える