프로젝트 의 Java 스킬 트리

중복 파일 찾기

읽기 전용 Java 중복 검사기를 만들고 실제 바이트로 동일성을 확인하며, 모든 원본을 보존한 채 완전한 경로 그룹을 저장합니다.

프로젝트Java

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

중복 파일 찾기는 실제 파일 내용을 다룰 준비가 된 학습자를 위한 Java 실습 프로젝트입니다. 모든 원본 경로를 보존하면서 내용이 같은 파일의 완전한 그룹을 찾는 재사용 가능한 읽기 전용 검사기를 만듭니다. 이름이 달라도 바이트가 같을 수 있고, 이름이나 크기가 같아도 내용은 다를 수 있습니다.

이 과정은 가이드 실습 2개와 챌린지 1개로 구성됩니다. 먼저 이진 스트림을 읽고 전체 경로 목록을 저장합니다. 다음으로 크기와 SHA-256 지문으로 후보를 줄이고 실제 바이트 비교로 동일성을 확인하며, 연습용 복사본을 바꾼 뒤 보고서를 다시 생성합니다. 챌린지에서는 같은 방식을 다른 자료 폴더에 적용합니다. 각 실습은 독립적으로 시작합니다. 읽기와 일반적인 수정을 포함한 저자 추정 시간은 약 150분입니다.

학습 내용

과정을 마치면 다음을 수행할 수 있습니다.

  • try-with-resources로 이진 파일을 읽고 매번 실제로 반환된 읽기 길이를 사용합니다.
  • 후보용 SHA-256 지문을 계산하고 빈 파일과 마지막 부분 버퍼를 포함한 모든 경로를 기록합니다.
  • 이름, 크기, 다이제스트를 증명으로 간주하지 않고 실제 바이트 비교로 동일성을 확인합니다.
  • 3개 이상인 그룹을 포함해 중복 그룹의 모든 구성원을 보존하고 고유 파일은 제외합니다.
  • 연습 파일을 변경한 뒤 현재 내용을 반영한 보고서를 다시 만들며 모든 원본을 보존합니다.
  • 스캔한 트리 밖에 보고서를 쓰고 읽을 수 없거나 지원하지 않는 입력을 실패로 보고합니다.

추천 대상

이 과정은 표준 라이브러리 파일 처리, 컬렉션, 예외를 유용한 터미널 프로그램에서 함께 활용하려는 Java 학습자에게 적합합니다.

선수 지식: Java 클래스, 메서드, 기본 컬렉션, 예외, 기초 파일 읽기, 기본적인 터미널 경로 이동을 알아야 합니다. 공동체 공구 대여소 관리하기의 두 번째 가이드 실습에서 파일 읽기와 I/O 예외의 기초를 배울 수 있으며, 동등한 지식도 가능합니다. 이 과정은 사용 전에 이진 스트림, 읽은 바이트 수, 리소스 닫기, 후보와 바이트 비교의 차이를 설명합니다.

학습 환경: LabEx는 브라우저의 WebIDE에 통합 터미널, Java 컴파일러, 시작 코드, 작은 PNG 이미지를 포함한 실제 샘플 파일을 제공합니다. 로컬에 Java를 설치하지 않고 프로그램을 실행하고 파일을 확인할 수 있습니다. 명령, 레이블, 출력은 영어로 유지됩니다.

자주 묻는 질문

프로그램이 중복 파일을 삭제하나요?

아니요. 결과물은 검사기와 검토용 완전한 그룹 보고서입니다. 모든 원본을 보존하며 자동 삭제, 복구, 디스크 정리는 프로젝트 범위 밖입니다.

지문을 계산한 뒤에도 왜 바이트를 비교하나요?

크기와 SHA-256은 후보를 고르는 데 사용합니다. 최종 판단은 실제 내용 비교에 기반하므로 일치하는 모든 경로를 남기고 크기가 같아도 내용이 다른 파일을 분리합니다. 이 과정은 다이제스트를 동일성의 수학적 증명으로 취급하지 않습니다.

어떤 입력을 지원하나요?

실행 중 바뀌지 않는 일반 파일과 디렉터리를 지원하며 공백과 UTF-8 파일명도 허용합니다. 심볼릭 링크, 특수 파일, 탭이나 줄바꿈이 있는 경로는 거부합니다. 읽기 실패를 전체 스캔 성공처럼 보여서는 안 됩니다. 보고서는 입력 트리 밖에 둡니다. 각 실습은 자체 데이터가 있어 이전 VM 파일이 필요하지 않으며, 동시 변경 중 일관된 스냅샷은 보장하지 않습니다.

강사

labby
Labby
Labby is the LabEx teacher.

추천 코스

no data