2012-05-03 12 views
0

私のbukkitプラグインに問題があります。 私がやろうとしているのは、ファイルを検索し、それを行ごとに読み込むことです(行えます)。行にテキストがあれば、その行を返す必要がありますが、他の行もすべて返す必要がありますその中にその特定のテキストも含まれています。そして、私はこれらのラインを持っているとき、私はプレーヤーにメッセージでこれらのラインを送る必要があります、それは問題ではありませんが、私が今得するラインを送るとき、 "\ n"は動作しません、ここにコードです私は今使用します。プレイヤーにメッセージを送信する際の問題

public String searchText(String text, String file, Player p) 
    { 
     String data = null; 

     try { 
      BufferedReader br = new BufferedReader(new FileReader(file)); 
      String line = null; 

      while((line = br.readLine()) != null) 
      { 
       if(line.indexOf(text) >= 0) 
       { 
        data += System.getProperty("line.separator") + line + System.getProperty("line.separator"); 
       } 
       p.sendMessage("+++++++++++GriefLog+++++++++++"); 
       p.sendMessage(data); 
       p.sendMessage("++++++++++GriefLogEnd+++++++++"); 
      } 

      br.close(); 

     } catch (Exception e) { 
      e.printStackTrace();    
     } 

     return ""; 
    } 

情報が少し高いプレイヤーに返却されているので、戻りは、空であることを意味する:P 問題は、今私は、データに「\ n」を追加するにはどうすればよいですなぜなら、この関数をコードの残りの部分で使うと、それはたくさんの行を与えますが、 "\ n"がなければ、どのように置くのでしょうか?

答えて

1

あなたのメソッドは何も返されないので、return文を削除し、戻り値の型をvoidに設定します。 検索キーワードが表示されるたびに、コードでデータ文字列が1回出力されるようです。

data = ""; 
while((line = br.readLine()) != null) 
{ 
    if(line.indexOf(text) >= 0) 
    { 
     //remove the first System.getProperty("line.separator") if 
     //you don't want a leading empty line 
     data += System.getProperty("line.separator") + line + 
      System.getProperty("line.separator"); 
    } 
} 
if (data.length() > 0) { 
    p.sendMessage("+++++++++++GriefLog+++++++++++"); 
    p.sendMessage(data); 
    p.sendMessage("++++++++++GriefLogEnd+++++++++"); 
} 
関連する問題