GroupDocs Merger Java를 사용하여 큰 텍스트 파일을 줄 단위로 분할
이 튜토리얼에서는 GroupDocs Merger for Java를 사용하여 큰 텍스트 파일을 분할 내용을 개별 줄 기반 문서로 분할하는 방법을 알아봅니다. 로그, CSV 덤프 또는 대용량 일반 텍스트 소스를 처리하든, 파일을 관리 가능한 조각으로 나누면 다운스트림 분석, 병렬 처리 및 저장이 훨씬 쉬워집니다.
빠른 답변
- 분할을 처리하는 라이브러리는 무엇인가요? GroupDocs Merger for Java.
- 몇 줄까지 처리할 수 있나요? 수백만 줄의 파일을 처리할 수 있으며, API가 데이터를 스트리밍하므로 메모리 사용량이 낮게 유지됩니다.
- 라이선스가 필요합니까? 평가를 위해 무료 체험을 사용할 수 있으며, 프로덕션에서는 상업용 라이선스가 필요합니다.
- 필요한 Java 버전은 무엇인가요? JDK 8 이상.
- 출력 형식을 변경할 수 있나요? 예 – 각 줄을 TXT, PDF, DOCX 또는 50개 이상의 지원 형식 중 하나로 출력할 수 있습니다.
큰 텍스트 파일을 분할한다는 것은 무엇인가요?
큰 텍스트 파일을 분할한다는 것은 각 줄을 읽어 별도의 문서에 기록하는 것을 의미하며, 이를 통해 각 레코드를 독립적으로 처리할 수 있습니다. 이 접근 방식은 메모리 부담을 줄이고 병렬 워크플로를 가능하게 합니다.
왜 GroupDocs Merger for Java를 사용해야 하나요?
GroupDocs Merger는 50개 이상의 입력 및 출력 형식을 지원하고, 전체 파일을 메모리에 로드하지 않고 수백 페이지 문서를 처리하며, 내장 스트리밍을 제공하여 2 GB를 초과하는 파일이라도 힙 사용량을 100 MB 이하로 유지합니다. 이러한 구체적인 이점 때문에 엔터프라이즈 수준 텍스트 처리에 최적의 선택입니다.
전제 조건
- Java Development Kit (JDK) 8 이상 설치됨.
- Build tool – 의존성 관리를 위한 Maven 또는 Gradle.
- GroupDocs Merger for Java 라이브러리 (Maven/Gradle을 통해 또는 수동 JAR 다운로드).
필요한 라이브러리 및 종속성
프로젝트에 GroupDocs Merger를 추가합니다:
Maven:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-merger</artifactId>
<version>latest-version</version>
</dependency>
Gradle:
implementation 'com.groupdocs:groupdocs-merger:latest-version'
또는 최신 버전을 GroupDocs.Merger for Java releases에서 다운로드하십시오. 자세한 내용은 다른 GroupDocs.Merger for Java releases 링크를 참조하십시오.
라이선스 획득 단계
- Free trial – 비용 없이 모든 기능을 테스트합니다.
- Temporary license – 체험 제한을 초과한 경우 temporary license page에서 단기 키를 요청하십시오.
- Purchase – 무제한 프로덕션 사용을 위해 GroupDocs’ purchase page에서 전체 라이선스를 획득하십시오. 가격 세부 정보는 GroupDocs’ purchase site에서도 확인할 수 있습니다.
GroupDocs Merger를 사용하여 큰 텍스트 파일을 줄 문서로 분할하는 방법
소스 파일을 로드하고 TextSplitOptions를 구성한 뒤 split 메서드를 호출합니다. API는 각 줄을 스트리밍하여 대상 폴더에 기록하고 자동으로 리소스를 해제하므로, 수백만 줄의 파일도 효율적으로 처리됩니다. 스트리밍 방식을 사용하면 메모리 사용량이 100 MB 이하로 유지되며, 작업을 여러 CPU 코어에 병렬화하여 대용량 데이터셋을 더 빠르게 처리할 수 있습니다.
1단계: 필요한 패키지 가져오기
Merger, TextSplitOptions, 및 표준 I/O 클래스를 모든 처리 전에 가져와야 합니다.
import com.groupdocs.merger.Merger;
Merger merger = new Merger("path/to/your/file.txt");
2단계: 파일 경로 정의
소스 텍스트 파일과 각 줄이 저장될 출력 디렉터리의 절대 경로나 상대 경로를 지정합니다.
import com.groupdocs.merger.Merger;
Merger merger = new Merger("path/to/your/file.txt");
3단계: Merger 인스턴스 생성
Merger 클래스는 GroupDocs Merger에서 모든 문서 작업의 진입점입니다.
import com.groupdocs.merger.Merger;
import com.groupdocs.merger.domain.options.TextSplitOptions;
import java.io.File;
import java.nio.file.Paths;
4단계: 분할 옵션 구성
TextSplitOptions를 사용하면 줄 구분자, 출력 파일명 및 기존 파일을 덮어쓸지 여부를 제어할 수 있습니다.
String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.txt";
String filePathOut = "YOUR_OUTPUT_DIRECTORY/";
5단계: 분할 작업 수행
split 메서드를 출력 폴더, 덮어쓰기 플래그 및 원하는 파일 확장자를 지정하여 호출합니다. 이 메서드는 생성된 파일 경로 컬렉션을 반환하며, 이를 로그에 기록하거나 추가로 처리할 수 있습니다.
Merger merger = new Merger(filePath);
매개변수 설명
- Output folder – 각 줄 문서가 기록될 위치.
- Overwrite flag –
true이면 동일한 이름의 기존 파일을 교체합니다. - File extension – 일반 텍스트는
".txt"를, 줄당 PDF를 원하면".pdf"를 선택합니다.
일반적인 문제 및 해결책
- File path errors – 입력 파일이 존재하고 출력 디렉터리에 쓰기 권한이 있는지 다시 확인하십시오.
- Permission problems – 충분한 OS 권한으로 JVM을 실행하거나 폴더 ACL을 조정하십시오.
- Version conflicts – GroupDocs Merger JAR 버전이 다른 종속성과 일치하는지 확인하고, 스택 전체에서 동일한 주요 버전을 사용하십시오.
실용적인 적용 사례
큰 텍스트 파일을 줄 기반 문서로 분할하는 것은 다음과 같은 경우에 유용합니다:
- Data processing pipelines – 각 줄을 별도의 마이크로서비스 또는 Spark 작업에 전달합니다.
- Log file management – 각 로그 항목을 개별 파일로 보관하여 빠른 검색 및 규정 준수 감사를 가능하게 합니다.
- Content segmentation – 방대한 기사 초안을 문장별 또는 줄별 스니펫으로 나누어 협업 편집 플랫폼에 활용합니다.
성능 고려 사항
매우 큰 파일을 처리할 때:
- Memory optimization – GroupDocs Merger의 스트리밍 API를 사용하고, 전체 파일을
String으로 로드하는 것을 피하십시오. - Batch processing – 파일을 청크(예: 배치당 10 000줄)로 분할하여 디스크 I/O를 원활하게 유지합니다.
- JVM tuning – 분할 작업 외에 추가 메모리 처리 계획이 있을 경우에만 힙(
-Xmx2g)을 늘리십시오.
결론
이제 GroupDocs Merger for Java를 사용하여 큰 텍스트 파일을 분할 내용을 개별 줄 문서로 분할하는 방법을 알게 되었습니다. 이 기술은 확장성을 향상시키고, 병렬 처리를 가능하게 하며, 다운스트림 데이터 처리를 단순화합니다.
다음 단계
TextSplitOptions에서 파일 확장자를 변경하여 PDF 또는 DOCX와 같은 다른 출력 형식을 실험해 보십시오.- 분할 작업을 GroupDocs Merger의 merge 및 watermark 기능과 결합하여 엔드‑투‑엔드 문서 워크플로를 구축하십시오.
- 이 솔루션을 Spring Boot 서비스 또는 서버리스 함수에 통합하여 자동화된 처리 파이프라인을 구현하십시오.
자주 묻는 질문
Q: 파일을 줄이 아니라 단락으로 분할할 수 있나요?
A: 기본 API는 줄 구분자를 기준으로 분할하지만, 사용자 정의 구분자(예: "\n\n")를 제공하여 빈 줄로 구분된 단락을 분할 단위로 사용할 수 있습니다.
Q: GroupDocs Merger를 상업 프로젝트에 무료로 사용할 수 있나요?
A: 평가를 위해 무료 체험을 제공하지만, 프로덕션 배포에는 유료 라이선스가 필요합니다.
Q: 텍스트 파일에 유니코드 문자가 포함되어 있으면 어떻게 되나요?
A: 라이브러리는 UTF‑8 인코딩을 자동으로 감지합니다; 필요에 따라 Merger 생성자에서 다른 문자 집합을 지정할 수도 있습니다.
Q: 분할기가 매우 큰 파일(수 GB)을 어떻게 처리하나요?
A: 각 줄을 디스크에 스트리밍하여 소스 크기에 관계없이 메모리 사용량을 100 MB 이하로 유지하므로 수 GB 파일에도 적합합니다.
Q: API가 TXT 외의 다른 형식을 지원하나요?
A: 예 – 각 줄을 PDF, DOCX, HTML 또는 제품 문서에 나열된 50개 이상의 형식 중 하나로 출력할 수 있습니다.
리소스
- Documentation: GroupDocs Merger for Java Documentation
마지막 업데이트: 2026-08-26
테스트 대상: GroupDocs Merger 23.11 for Java
작성자: GroupDocs
// Create TextSplitOptions instance specifying mode to split by lines.
TextSplitOptions splitOptions = new TextSplitOptions(filePathOut, true, true);
merger.split(splitOptions);