2014-04-13 7 views
1

org.apache.commons.io.FileUtils 클래스의 텍스트 파일에서 특정 행을 인덱스별로 삭제하는 방법은 무엇입니까?Java FileUtils : 파일에서 특정 행을 제거하십시오.

삭제할 줄의 색인이 이미 알고 있으므로 파일에서 특정 줄을 삭제하는 몇 가지 방법이 필요합니다.

+1

읽었습니까? [파일에서 한 줄 찾기 및 제거] (http://stackoverflow.com/questions/1377279/java-find-a-line-in-a-file-and-remove)? – Obicere

+0

정말로 아파치 FileUtils를 사용하고 싶다면,'lineIterator (File)'메소드를 사용하고'Collection '에 그 라인을 추가하고'ith' 라인을 제거한 다음'writeLines (File, Collection )'함수를 호출합니다. – Obicere

답변

0

동일한 라이브러리의 lineIterator 함수를 사용할 수 있습니다.

  • 은 lineIterator를 통해 파일
  • 반복 처리의 라인 Iterator를 얻고 임시 파일에 기록.
  • 현재 반복의 색인을 유지 관리합니다. 위의 단계에서 줄 번호가 건너 뛸 번호와 일치하면 임시 파일에 쓰지 마십시오.
  • 두 파일을 모두 닫습니다 (예외 인 경우 케이스를 처리하십시오. 마지막으로 사용할 수도 있습니다.)
  • 오래된 파일을 삭제하십시오.
  • 메모리에 게으르게,

참고로 새 파일 반복자로드를 임시 파일 이름을 변경하고 호출 할 때 다음 이전 행을 참조하여 삭제합니다. [@Obicere : 또한 질문에 직접적으로 대답 할 수는 없지만 모든 행을 메모리에로드하는 것은 좋은 생각이 아닙니다. ]