2017-08-17 22 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

"equals"ではなく、 "line.equals"の行に "contains"を試してみましたか? equalsは正確な値をチェックしている可能性があります。 –

+0

HTTPステータス500 - 例外は、行の処理JSPページ/Reader.jspを発生35 タイプ例外レポート例外ラインで処理JSPページ/Reader.jspを発生 メッセージ35 説明サーバを防止内部エラーが発生しましたそれはこの要求を満たすことからです。 例外org.apache.jasper.JasperExceptionが:例外がライン35で処理JSPページ/Reader.jspを発生 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

コードは設計通りに動作しています。 常にを出力します。lineは読み取りループの最後に常にヌルになるため、「結果が見つかりません」と表示されます。 sb.length()またはそれ以外のものをテストする必要があります(lineではなく)。

NB '結果が見つかりません'は有効なHTMLではありません。

+0

私は問題が正しいとは思わないが、 "検索テキストフィールド名="基準 "からテキストを取り出し、そのレコードを.txtファイルで検索するのに使われる"と言います。あなたの答えは尋ねられたものではありません –

+0

@jeetendraMandal問題は、私は「それは印刷されます」結果が見つかりませんでした!」と言い、私は両方の理由を特定して解決策を提示しました。 OPのコード*は、ファイル内のテキストを正しく検索します。結果を誤って報告するだけです。 – EJP

関連する問題