Java 检查文本文件中的输入字符串

Java 检查文本文件中的输入字符串,java,jsp,Java,Jsp,我正在使用jsp,希望检查输入是否存在于整个文本文件的第一列中 假设我有user.text并包含 测试,名字,姓氏 Test02,用户,User08 如果用户输入“Test”,它将打印exist。否则,它会将输入添加到文件中 这是我的密码: <% String user= request.getParameter("user"); String firstname = request.getParameter("firstname"); String la

我正在使用jsp,希望检查输入是否存在于整个文本文件的第一列中

假设我有user.text并包含

测试,名字,姓氏
Test02,用户,User08

如果用户输入“Test”,它将打印exist。否则,它会将输入添加到文件中

这是我的密码:

    <% 
    String user= request.getParameter("user");
    String firstname = request.getParameter("firstname");
    String lastname= request.getParameter("lastname");

    File file = new File("/user.txt");
    BufferedReader read = new BufferedReader(new FileReader(path));
    PrintWriter out = new PrintWriter(new FileWriter(file, true));

    String line = read.readLine();

    if(line.contains(user)) {
        %>
        <H3>User Already exist...</H3>
        <%
    }
    else{
    outt.println(User + "," + firstname + "," + lastname + "\n");        
    outt.close();
    br.close();
    %> 
      <p> Done...</p>
     <%
   }
   %>

用户已存在。。。
完成


问题在于它只检查第一行。

您需要添加一个循环:

<% 
String user= request.getParameter("user");
String firstname = request.getParameter("firstname");
String lastname= request.getParameter("lastname");

File file = new File("/user.txt");
BufferedReader read = new BufferedReader(new FileReader(path));
PrintWriter out = new PrintWriter(new FileWriter(file, true));

String line = null;
while((line = read.readLine()) != null) {
    if(line.contains(user)) {
        %>
        <H3>User Already exist...</H3>
        <%
        break;
    }
}
if(line == null)
    outt.println(User + "," + firstname + "," + lastname + "\n");        
outt.close();
br.close();
%> 
  <p> Done...</p>

用户已存在。。。
完成


另外,该验证(
line.contains(user)
)看起来太容易出错……

您能详细说明您面临的问题吗?编写一个
,同时围绕“读取”和“检查”部分进行循环怎么样?下面是一个使用
BufferedReader
读取整个文件的示例:。