2015-01-23 6 views
1

저는 Java 초보자이며 현재 Eclipse Kepler에서 작업 중입니다. 나는 쉘 스크립트를 사용하여 연속적으로 쓰여지는 텍스트 파일을 읽고있는 JSP 페이지를 가지고있다.java, eclipse kepler를 사용하여 텍스트 파일 읽기

   <b> 
        <% 
         String filePath = "/home/default/test.txt"; 
         BufferedReader reader = new BufferedReader(new FileReader(filePath)); 
         StringBuilder sb = new StringBuilder(); 
         String line; 

         while((line = reader.readLine()) != "Success"){ 
          sb.append(line+"\n"); 
          out.println(sb.toString()); 
         }      
        %> 
       </b> 

마지막 "성공"문자열을 읽을 때까지 로그 읽기를 유지해야하며 그렇지 않을 때까지 빈 행을 인쇄해서는 안됩니다.

어떻게 해결할 수 있습니까?

+1

'= ".equals()"' – epoch

답변

2

당신은이 방법으로 달성 할 수

while ((line = reader.readLine()) != null) { 
      if (line.trim().length() == 0) { 
       continue; 
      } 

      if (line.equals("Success")) { 
       break; 
      } else { 
       // perform required operation 
      } 

    } 
0

이 시도 :

while(!(line = reader.readLine()).equals("Success")) { 
    if (line.trim().length() != 0) { 
     out.println(line+"\n"); 
    } 
} 

lineout 스트림에 직접 전달됩니다. 여기서는 StringBuilder를 사용하지 않습니다.

+0

이해를하지만 것이 "성공"문자열의 사촌을 발견까지이 코드를 기다립니다 그 전에는 루프를 종료하고 싶지 않습니다. – user728630

+0

코드가 "성공"을 찾으면 루프가 종료됩니다. 그렇지 않으면 빈 행이 아닌 내용이 인쇄됩니다. – Stephan

+0

@ user728630 물론 성공 문자열이 발견 될 때까지는 루프 내부에 머물러 있기 때문에 매번 다른 변수 값이 텍스트 문서의 다음 줄에옵니다. 그리고 말하자면 .equals() 메소드를 사용하여 라인을 비교하는 것이 더 낫습니다. – drgPP

1

신기원에 의하면, "! ="은 "equals()"와 같지 않습니다. Strings을 비교하는 경우 항상 "equals()"를 사용하십시오. "! ="! :

while(!(line = reader.readLine()).equals("Success")) {...}