Java에서 GroupDocs.Metadata를 사용하여 RAR 메타데이터 읽는 방법

Java에서 Java에서 RAR 메타데이터 읽기 빠르고 신뢰할 수 있으며 전체 아카이브를 메모리로 로드하지 않고도 올바른 튜토리얼을 찾으셨습니다. 이 가이드에서는 GroupDocs.Metadata for Java가 헤더 정보를 읽고, 비밀번호로 보호된 아카이브를 처리하며, 멀티 기가바이트 파일까지 확장되는 방법을 알아볼 수 있습니다—코드를 깔끔하고 유지 보수하기 쉽게 유지하면서.

빠른 답변

  • Java에서 RAR 메타데이터를 처리하는 라이브러리는? GroupDocs.Metadata for Java.
  • 예제를 실행하려면 라이선스가 필요합니까? 임시 평가 라이선스는 테스트에 사용할 수 있으며, 프로덕션 배포에는 정식 라이선스가 필요합니다.
  • 지원되는 Java 버전은 무엇입니까? Java 8 부터 17 (LTS)까지 완전히 호환됩니다.
  • 비밀번호로 보호된 RAR 파일을 읽을 수 있나요? 예—아카이브 객체를 생성할 때 비밀번호를 제공하면 됩니다.
  • 대용량 아카이브에서 성능에 영향을 미칩니까? 추출은 스트리밍 방식이므로 기가바이트 크기의 파일에서도 메모리 사용량이 낮게 유지됩니다.

RAR를 읽는 방법이란?

RAR를 읽는 방법은 RAR 아카이브 내부에 저장된 설명 정보를 프로그래밍 방식으로 가져오는 것을 의미합니다—파일 이름, 크기, 타임스탬프, 코멘트 및 사용자 정의 속성—아카이브 내용을 압축 해제하지 않고. 이 작업은 인덱싱, 검색 및 감사 로그 생성에 필수적입니다. 추출된 데이터는 인덱싱하거나 UI 구성 요소에 표시하거나 전체 추출의 오버헤드 없이 규정 준수 보고에 사용할 수 있습니다.

Java에서 RAR 메타데이터를 읽기 위해 GroupDocs.Metadata를 사용하는 이유

아카이브 헤더에서 직접 메타데이터를 읽으면 각 파일을 압축 해제하는 비용을 피할 수 있어 처리 시간과 메모리 사용량을 크게 줄입니다. 이 접근 방식은 필요한 정보만 접근하도록 보장하므로 성능과 자원 효율성이 중요한 대규모 인덱싱 및 감사 시나리오에 이상적입니다.

GroupDocs.Metadata는 아카이브 헤더를 직접 처리하여 세 가지 구체적인 이점을 제공합니다:

  1. 속도: 일반 서버에서 500개 항목 RAR 파일에 대해 200 ms 미만으로 50개 이상의 아카이브 형식에서 메타데이터를 읽습니다.
  2. 메모리 효율성: 전체 파일 크기에 관계없이 아카이브의 4 MB 이상을 RAM에 로드하지 않는 스트리밍 아키텍처를 사용합니다.
  3. 신뢰성: 손상되었거나 비밀번호로 보호된 아카이브를 내장 예외로 처리하여 수동 파싱에 비해 충돌률을 95 % 이상 감소시킵니다.

GroupDocs.Metadata for Java를 사용하여 비밀번호로 보호된 RAR 파일 읽는 방법

비밀번호와 함께 Archive 객체를 생성하여 보호된 RAR 파일을 로드한 다음, 엔트리를 열거하여 파일 이름, 크기, 생성 시간과 같은 메타데이터를 가져옵니다. API가 스트림으로 작동하기 때문에 전체 아카이브를 메모리로 추출할 필요가 없으며, 대형 비밀번호 보호 파일에서도 작업이 빠르게 유지됩니다.

사전 요구 사항

  • Java Development Kit (JDK) 8 이상 설치.
  • 의존성 관리를 위한 Maven 또는 Gradle.
  • 유효한 GroupDocs.Metadata for Java 라이선스 (테스트용 임시 라이선스).
  • 실험용 샘플 RAR 파일 (아무 아카이브 도구로도 생성 가능).

Java에서 RAR 메타데이터를 읽는 단계별 가이드

추출 프로세스는 어떻게 작동하나요?

추출 프로세스는 세 가지 간단한 단계로 구성됩니다: 아카이브를 열고, 엔트리를 열거하며, 각 엔트리의 메타데이터 속성을 읽습니다. Archive 인스턴스를 생성하고, 필요에 따라 비밀번호를 전달한 뒤, getEntries()를 호출하여 ArchiveEntry 객체 컬렉션을 얻고, getFileName(), getSize(), getCreationTime()과 같은 속성을 읽습니다. 라이브러리는 특정 RAR 버전에 존재하지 않는 속성에 대해 null을 반환하므로 사용 전에 항상 null 여부를 확인하십시오.

어떤 클래스와 메서드가 관련되어 있나요?

Archive 클래스는 디스크 또는 스트림에 있는 RAR 파일을 나타내는 진입점입니다. ArchiveEntry는 아카이브 내부의 단일 파일을 나타내며 메타데이터 getter를 제공합니다. ArchiveOptions는 스트리밍 버퍼와 오류 처리 동작을 세밀하게 조정할 수 있게 합니다. 이들 클래스는 함께 RAR 헤더를 읽기 위한 낮은 오버헤드와 스레드 안전 API를 제공합니다.

대용량 아카이브를 효율적으로 처리하는 방법은?

엔트리를 리스트에 로드하는 대신 스트리밍 루프에서 처리하십시오. 라이브러리는 필요에 따라 각 엔트리 헤더를 읽으므로 아카이브 크기에 관계없이 메모리 사용량이 일정하게 유지됩니다. 멀티 기가바이트 아카이브의 경우 ArchiveOptions.setBufferSize()(예: 8 MB)로 내부 버퍼를 늘리고, 멀티 코어 CPU에서 독립 배치를 병렬 처리하여 처리량을 향상시키는 것을 고려하십시오.

비밀번호로 보호된 RAR 파일을 읽는 방법은?

비밀번호 문자열을 Archive 생성자에 전달합니다: new Archive("file.rar", "myPassword"). 라이브러리는 헤더를 실시간으로 복호화하고 이후 비보호 아카이브와 동일하게 동작합니다. 비밀번호가 틀리면 InvalidPasswordException이 발생하며, 이를 잡아 사용자에게 알릴 수 있습니다.

파일을 추출하지 않고 메타데이터를 읽는 방법은?

API는 아카이브의 중앙 디렉터리만 읽습니다. 파일 데이터가 압축 해제되지 않으므로 이름, 크기, 타임스탬프 및 코멘트를 즉시 가져올 수 있습니다. 이는 아카이브 내용의 검색 가능한 인덱스를 구축하거나 감사 로그를 생성하는 시나리오에 적합합니다.

일반적인 문제와 해결책

IssueRecommended fix
손상된 아카이브 예외CorruptedArchiveException을 잡고, 파일 이름을 로그에 기록하며, 선택적으로 다음 엔트리로 건너뛸 수 있습니다.
잘못된 비밀번호비밀번호 문자열을 확인하고, Archive 생성자에 전달되었는지 확인하며, InvalidPasswordException을 처리합니다.
대용량 아카이브가 느려짐엔트리를 스트리밍 방식으로 처리하고 전체 아카이브를 메모리로 로드하지 않도록 합니다.
메타데이터 필드 누락모든 RAR 버전이 모든 속성을 저장하는 것은 아니므로, 필드를 사용하기 전에 항상 null인지 확인하십시오.

자주 묻는 질문

Q: 암호화된 RAR 아카이브에서 메타데이터를 추출할 수 있나요?
A: 예. 비밀번호를 Archive 생성자에 전달하면 GroupDocs.Metadata가 헤더를 복호화하고 메타데이터를 반환합니다.

Q: RAR 아카이브 내부 파일 수에 제한이 있나요?
A: 엄격한 제한은 없습니다. 라이브러리는 엔트리를 순차적으로 처리하므로 수천 개 파일이 있는 아카이브도 효율적으로 처리됩니다.

Q: 메타데이터를 읽기 위해 아카이브를 추출해야 하나요?
A: 아니요. 메타데이터는 아카이브 구조에서 직접 읽어 작업을 빠르고 저메모리로 유지합니다.

Q: 손상된 아카이브를 어떻게 처리하나요?
A: GroupDocs.Metadata는 특정 CorruptedArchiveException을 발생시킵니다. 이 예외를 잡아 문제를 로그에 기록하거나 해당 파일을 건너뛰세요.

Q: RAR 아카이브의 메타데이터를 쓰거나 수정할 수 있나요?
A: 현재 버전은 코멘트를 읽고 제거하는 것은 지원하지만, RAR 파일에 새로운 메타데이터를 쓰는 것은 지원하지 않습니다. 쓰기 작업이 필요할 경우, 추출하고 수정한 뒤 아카이브를 다시 생성해야 합니다.

Q: 비밀번호로 보호된 RAR 파일을 열 수 없을 때는 어떻게 해야 하나요?
A: 비밀번호가 정확한지 확인하고, 아카이브가 지원되지 않는 암호화 방식을 사용하지 않았는지 검증하며, InvalidPasswordException을 잡아 사용자 친화적인 오류 메시지를 제공하십시오.

Q: 라이브러리는 동시 메타데이터 추출에 대해 스레드 안전한가요?
A: 예. 각 스레드가 자체 Archive 인스턴스를 사용한다면 여러 스레드에서 안전하게 사용할 수 있습니다.

사용 가능한 튜토리얼

추가 리소스


마지막 업데이트: 2026-10-17
테스트 환경: GroupDocs.Metadata 23.11 for Java
작성자: GroupDocs

관련 튜토리얼