2016-06-14 1 views
2
   String str = ""; 
      try { 

       BufferedReader br = new BufferedReader(new FileReader(file.getAbsolutePath())); 
       while (br.readLine() != null) { 
        str += br.readLine(); 
       } 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      String replace = str.replace("HTTP Request: ", "") 
        .replace("Resource URL: ","") 
        .replace("Attribute\t\tDescription", "| Attribute | Type | Description |<P>|----|----|<P>") 
        .replace("Data Type | Max Length | Requirement |", "") 
        .replace("N/A", "Object") 
        .replace("String", "| String") 
        .replace("255 |", "") 
        .replace("Required", "**Required**") 
        .replace("Optional", "**Optional**") 
        .replace("Request Example <P>", "") 
        .replace("Response Example <P>", "Nothing"); 

      PrintWriter pw = null; 

BufferedReader는 처음 세 줄을 무시하고 나머지는 읽거나 변환합니다. 문제가 무엇인지 확실하지 않습니다. 다른 StackOverflow 솔루션을 시도했지만 그 중 아무 것도 작동하지 않는 것 같습니다!BufferedReader가 전체 텍스트 파일을 읽지 않음

+0

'str' 또는'replace'의 내용을 확인 했습니까? –

+0

예, 저는 sysout 된 str이고 첫 3 행없이 인쇄합니다. –

답변

4

이 문제는 여기에 있습니다 :

while (br.readLine() != null) 

br.readLine()는 이미 다음 시도 할 수는이 문제를 해결 line.To 읽고 null가 아닌 경우, 당신은 확인 시간 :

String line = br.readLine(); 
while (line != null){ 
    str +=line; 
    line = br.readLine(); 
} 
+0

이 솔루션은 효과가있었습니다! –

+0

@Suhail Prasathong 나는 도움이 되었기 때문에 기쁩니다. 그러나 질문을 끝내기위한 해결책을 받아 들여야한다는 것을 기억하십시오. 그것은 내 것이되어야합니다. – theVoid

0

Void는 이미 어떤 문제가 해결책을 제시했는지 알려줍니다. 당신은뿐만 아니라 그것을 치료하는 가정하는 동안 반복 기능이다 cinditional 문 사례에서

, 나는 항상 당신 만 br.readLine()의 반환 값을 확인

do{ 
    //task 
    //Iterate and store result in var, like in your case 
    var = br.readLine(); 
}while(var != null/*check on var rather than executing iteration*/); 
2

를 사용하는 것을 선호, 여기에 공통 코드는 다음과 같습니다

StringBuider buffer = new StringBuilder(); 
try (BufferedReader br = new BufferedReader(new FileReader(file.getAbsolutePath()))) { 
    String line; 
    while((line = br.readLine()) != null) { 
     buffer.append(line); 
    } 
}