2017-08-17 42 views
-1

这是我的运行代码,迄今为止打印没有结果! 我想我的代码从搜索文本字段name =“criteria” 中获取文本,并将其用于在.txt文件中搜索该记录。JSP BufferedReader如何在文本文件中搜索字符串

</head> 
<body> 
<div class="container form-group panel panel-default"> 
    <% 
     String inpt = request.getParameter("criteria"); 
     String jspPath = "D:\\TextDB\\"; 
     String fileName = "Student_Details.txt"; 
     String txtFilePath = jspPath + fileName; 
     BufferedReader reader = new BufferedReader(new FileReader(txtFilePath)); 
     //BufferedReader br = new InputStreamReader(new FileInputStream(txtFilePath)); 
     StringBuilder sb = new StringBuilder(); 
     String line; 

      while((line = reader.readLine())!= null){ 
       if(line.equals(inpt)) 
       { 
        sb.append(line+"\n"); 
       } 
      } 
     out.println(sb.toString()); 
      if(line == null) 
      { 
      out.println("\n No Results Found!");   
      } 
    %> 
+0

而不是“等于”,你有没有尝试“包含”在线“line.equals”。等于可能正在检查确切的值。 –

+0

HTTP状态500 - 发生处理JSP页/Reader.jsp例外,在管线35 类型异常报告 消息时发生处理JSP页/Reader.jsp例外,在管线35 描述服务器遇到,阻止内部错误它履行这一要求。 例外 org.apache.jasper.JasperException:发生处理JSP页/Reader.jsp例外,在管线35 32:字符串线; 33:\t \t \t \t 34:\t \t \t \t而((线= reader.readLine())!= NULL){ 35:\t \t \t \t \t如果(line.contains(INPT)) 36: \t \t \t \t \t { 37:\t \t \t \t \t \t sb.append(线+ “\ n”); 38: – Rango2

+0

包含报告错误 – Rango2

回答

0

您的代码按设计工作。您将总是 print'未找到结果',因为line在读取循环结束时将始终为空。你应该测试sb.length()或者其他什么,而不是line

NB'未找到结果'是无效的HTML。

+0

我不认为你的问题是正确的,它表示“从搜索文本字段名称=”标准中获取文本并用于在.txt文件中搜索该记录“。你的回答不是问什么 –

+0

@jeetendraMandal问题是,我引用'它打印'没有找到结果!'',我已经找到了原因并提供了解决方案。 OP的代码*会*正确地搜索文件中的文本:它只是误报了结果。 – EJP