2012-06-04 5 views
-1

좋아요,이 함수는 파일의 특정 텍스트를 검색 할 때 사용합니다. 파일의 텍스트를 찾으면 모든 파일에서 모든 행을 반환해야합니다. 그 텍스트가 포함되어 그래서, 나는 그 기능을 가지고 ...하지만 난 아무것도 반환하지 않는 조금 다른 다른 기능을 가지고 있으며, 나는 파일이 검색된 텍스트가 포함되어 있다고 확신합니다 ... 그래서, 여기여러 파일을 통한 검색이 작동하지 않습니다.

public void searchText(String text, CommandSender p) { 

    File[] searchFiles = new File[files.size()]; 
    searchFiles = files.toArray(searchFiles); 

    FileReader fileReader = null; 
    BufferedReader br = null; 

    for(File searchFile : searchFiles) 
    { 
     try { 
      fileReader = new FileReader(searchFile); 
      br = new BufferedReader(fileReader); 
      String line = ""; 

      while ((line = br.readLine()) != null) { 
       if (line.indexOf(text) >= 0) { 
        p.sendMessage(line); 
       } 
      } 

     } catch (Exception e) { 
      if((fileReader != null) && (br != null)) 
      { 
       try { 
        br.close(); 
        fileReader.close(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
      } 

      e.printStackTrace(); 
     } finally { 
      if((fileReader != null) && (br != null)) 
      { 
       try { 
        br.close(); 
        fileReader.close(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
      } 
     } 
    } 
} 

잘 작동 콘솔에이 라인을 제공합니다 : 작업을 수행하는 기능입니다. 하지만 난이 기능을 사용할 때 :

public String searchPos(int x, int y, int z) { 
    String xyz = z + ", " + y + ", " + z; 
    StringBuffer sb = new StringBuffer(); 
    File[] searchFiles = new File[files.size()]; 
    searchFiles = files.toArray(searchFiles); 

    FileReader fileReader = null; 
    BufferedReader br = null; 

    for(File searchFile : searchFiles) 
    { 
     try { 
      fileReader = new FileReader(searchFile); 
      br = new BufferedReader(fileReader); 
      String line = ""; 

      while ((line = br.readLine()) != null) { 
       if ((line.indexOf(xyz) >= 0) || (line.contains(xyz))) { 
        sb.append(line); 
       } 
      } 

     } catch (Exception e) { 
      if((fileReader != null) && (br != null)) 
      { 
       try { 
        br.close(); 
        fileReader.close(); 
       } catch (IOException e1) { 
        e1.printStackTrace(); 
       } 
      } 

      e.printStackTrace(); 
     } finally { 
      if((fileReader != null) && (br != null)) 
      { 
       try { 
        br.close(); 
        fileReader.close(); 
       } catch (IOException e1) { 
        e1.printStackTrace(); 
       } 
      } 
     } 
    } 
    return sb.toString(); 
} 

반환은 그냥 ""또는 아무것도 아니다, 첫 번째 기능은 작동하지 않습니다 왜 난 그냥 이해할 수없는, 두 번째는하지 않습니다. 사전에

감사합니다, blackwolf12333

답변

0

당신은 StringBuffer 객체에 아무것도 추가하지, 그래서 그것을 내가 일을 추가 할 ""

+0

를 반환하는 기대하지만, 아래이었다 대답은 정확했다 ... 그래서 고마워, 누가 대답했는지 ... : P 이걸로 너희들을 괴롭히는 것에 미안해. – blackwolf123333

관련 문제