2013-10-18 8 views
1

BufferedReader로 파일을 읽는 동안 '#'으로 시작하는 빈 줄과 줄을 건너 뛰고 싶습니다. 궁극적으로, 각각의 캐릭터가 다음 ArrayList에BufferedReader로 줄 건너 뛰기

inputStream = new BufferedReader(new FileReader(filename)); 

     int c = 0; 
     while((c = inputStream.read()) != -1) { 
      char face = (char) c; 

      if (face == '#') { 
       //skip line (continue reading at first char of next line) 
      } 
      else { 
       faceList.add(face); 
      } 

내가 잘못 해요하지 않는 한 추가되어, BufferedReader로 자동으로 빈 줄을 건너 뜁니다. 그것 이외에, 나는 이것을 어떻게 할 것인가?

그냥 건너 뛰시겠습니까()? 줄의 길이가 다를 수 있으므로 그렇게 생각하지 않습니다.

답변

7

한 번에 한 문자 씩 읽지 마십시오.

메인 루프를 반복 할 때마다 하나의 완전한 라인에서 String으로 읽습니다. 그런 다음 무시할 특정 패턴과 일치하는지 확인하십시오 (공백, 공백 만, # 등으로 시작). 일단 당신이 처리하고자하는 라인을 가지고 있다면, 필요하다면 한 번에 한 문자 씩 String을 반복합니다.

빈 줄과 패턴을 일치시키는 줄을 쉽게 확인하고 무시합니다.

while((line=in.readline()) != null) 
{ 
    String temp = line.trim(); 
    if (temp.isEmpty() || temp.startsWith("#")) 
     /* ignore line */; 
    else 
     ... 
} 
+0

완벽하게, 정말 고마워. 나는 결국 문자열을 반복하는 것에 대해 생각했지만 나 자신보다 앞서 나갔다.하지만 이것은 의미가있다. – rhl13

-1

continue을 사용하십시오. 그러면 모든 루프의 다음 항목으로 계속 진행됩니다.

 if (face == '#') { 
      continue; 
     } 
     else { 
      faceList.add(face); 
     }