如何使用Java从文本文件返回完整的字符串行

如何使用Java从文本文件返回完整的字符串行,java,Java,因此,我正在尝试编写一个java应用程序,其中有一个文本文件,其中包含一些数据,如:id、用户名、密码,并且每条记录都位于新行上。我试图实现的是,例如,如果用户输入“vick”,我希望能够在文本文件中搜索包含“vick”的用户名,并返回id、用户名和密码 这就是我到目前为止所做的: import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import ja

因此,我正在尝试编写一个java应用程序,其中有一个文本文件,其中包含一些数据,如:id、用户名、密码,并且每条记录都位于新行上。我试图实现的是,例如,如果用户输入“vick”,我希望能够在文本文件中搜索包含“vick”的用户名,并返回id、用户名和密码

这就是我到目前为止所做的:

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Scanner;


public class tests {

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


        File file = new File("C:\\Users\\Vick\\PT\\Tests\\src\\users.txt");
        String[] UserToken = null;
        BufferedReader br = new BufferedReader(new FileReader(file));
        int lineCount = 0;
        while(br.readLine() != null)
        {
            lineCount++;
        }
        br.close();
        Scanner inputeFile = new Scanner(file);

        int uid = 0;
        String username = null;
        String password = null;

        while(inputeFile.hasNext())
        {
            String str = inputeFile.nextLine();
            UserToken = str.split(",");

            uid = Integer.parseInt(UserToken[0]);
            username = UserToken[1];
            password = UserToken[2];

            //Users u1 = new Users(uid, username, password);
            //System.out.println(UserToken[0] + " - " + UserToken[1] + " - " + UserToken[2]);
        }
        Users u1 = new Users(uid, username, password);
        Scanner search = new Scanner(System.in);
        System.out.println("Search for user: ");
        String searchterm = search.next();

        while(inputeFile.hasNext())
        {
            if(u1.getUsername().contains(searchterm))
            {
                System.out.println("HE!");
            }
        }
    }

}
这是我尝试使用的用户类

public class Users {
    public int userid;
    public static String username;
    public String password;

    public Users(int userid, String username, String password)
    {
        userid = userid;
        username = username;
        password = password;
    }

    public int getUID()
    {
        return userid;
    }

    public static String getUsername()
    {
        return username;
    }

    public String getPassword()
    {
        return password;
    }
}
--正如该线程中的某个人已经说过的,使用hasNextLine() --你的代码效率不高。(首先循环所有行以获得计数,然后再次循环以读取)。我的代码也可以改进,但我将把它作为练习。 --我测试的样本文件

1,test,lol
2,robot,small
--


所以我离做对这件事不远了?谢谢你,没问题。你看起来像个Java初学者。坚持住。你就在不远处。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;


public class Tests {

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

        Scanner search = new Scanner(System.in);
        System.out.println("Search for user: ");
        String searchterm = search.next();


        File file = new File("/tmp/users.txt");
        String[] UserToken = null;
        BufferedReader br = new BufferedReader(new FileReader(file));

        Scanner inputeFile = new Scanner(file);

        int uid = 0;
        String username = null;
        String password = null;

        while(inputeFile.hasNext())
        {
            String str = inputeFile.nextLine();
            UserToken = str.split(",");

            uid = Integer.parseInt(UserToken[0]);
            username = UserToken[1];
            password = UserToken[2];

            // make user object here if you want to
            if (username.contains(searchterm))
            {
                System.out.println(str);
            }
        }

    }
}