0

我是 Java 新手,我正在制作一个登录程序(基于文本文件处理)作为我的 Java 作业的一部分,到目前为止,我已经编写了这段代码,但它只检查文本文件中的第一行。我也尝试添加一个 for 循环,但它也没有工作。

你能帮我解决这个问题吗?

(用户名和密码在文件中由制表符分隔,这就是我使用它的原因(user+"\t"+pass)) 已经尝试过网络,我没有找到任何好的教程。

    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

这是完整的课程:

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

你期待标签,但发现连续的空间,反之亦然。检查一下。

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

如果您对摆动组件有所了解,请访问此链接

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

如果您不知道,那么我建议您,您必须尝试通过使用逻辑程序来学习 Java 的基本概念。

您正在谈论登录表单。当你学习一些关于 UI 相关的东西时,你必须尝试这个。

在从应用程序设计登录时,您必须了解数据库连接...

希望,这对你来说很清楚..

于 2012-05-12T09:40:08.947 回答
0

在您的文本文件中,所有数据都在一行中... readLine() 方法将在每次迭代中移至下一行.. 如果您的数据是

x     y

x     z

x     t

而不是

x    y     x      z     x    t

并确保您的文本文件与您的 .class 文件位于同一目录中(如您的代码所期望的那样)

于 2012-05-12T09:40:32.137 回答