0

私はJavaを初めて使用し、Java割り当ての一部として(テキストファイル処理に基づいて)ログインプログラムを作成しています。これまでこのコードを記述しましたが、テキストファイルの最初の行のみをチェックします。forループも追加しようとしましたが、どちらも機能しませんでした。

この問題を解決するのを手伝っていただけませんか。

(ユーザー名とパスワードはファイル内でタブ文字で区切られているため、これを使用しました(user + "\ t" + pass))すでにWebを試しましたが、良いチュートリアルは見つかりませんでした。

    FileInputStream fstream = new FileInputStream("file.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    while ((strLine = br.readLine()) != null)   {
        if ((user+"\t"+pass).equals(strLine)) {System.out.println ("Sucess");}
    }

テキストファイルはそうです

 x  y
 x  z
 x  t

したがって、xとyを入力すると、プログラムはSuccessと表示しますが、xとzまたはtの場合、結果はありません。

4

4 に答える 4

0

タブを期待しているが、連続したスペースが見つかった、またはその逆。チェックしてください。

String str="abc"+"\t"+"def";
System.out.println(str.equals("abc  def"));//this is tab so it is true

しかし、以下は真実ではありません

String str="abc"+"\t"+"def";
System.out.println(str.equals("abc    def")); //this is space so it is false
于 2012-05-12T09:29:55.093 に答える
0

完全なクラスは次のとおりです。

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Delete {

/**
 * @param args
 * @throws IOException
 */
public static void main(String[] args) throws IOException {
    FileInputStream fstream = new FileInputStream("C:/file.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    String user = "john";
    String pass = "doe";
    while ((strLine = br.readLine()) != null) {
        if ((user + "\t" + pass).equals(strLine)) {
            System.out.println("Sucess");
        }
    }

}

}

そしてfile.txt:

john    doe
john    doe
john    doe
mary    doe

ご想像のとおり、コンソール出力は次のとおりです。

Sucess
Sucess
Sucess

したがって、投稿したコードはすべての行をチェックします。ファイルの内容とユーザーとパスワードの文字列を貼り付けてください。

于 2012-05-12T09:27:03.030 に答える
0

Swing コンポーネントについて何か知っている場合は、このリンクを参照してください。

http://www.roseindia.net/answers/viewqa/Java-Beginners/7050-Login-Form-in-Java.html

わからない場合は、論理プログラムを使用して Java の基本的な概念を学ぶことをお勧めします。

あなたはログインフォームについて話している。UI関連について何かを学ぶときは、これを試してください..

アプリケーションからのログインを設計する際には、データベース接続を知っておく必要があります...

希望、これはあなたに明らかです..

于 2012-05-12T09:40:08.947 に答える
0

テキストファイルでは、すべてのデータが1行にあります... readLine() メソッドは、各反復で次の行に移動します..データが次の場合に機能します

x     y

x     z

x     t

それよりも

x    y     x      z     x    t

テキストファイルが.classファイルと同じディレクトリにあることを確認してください(コードが期待するように)

于 2012-05-12T09:40:32.137 に答える