GroupDocs.Merger for Java를 사용한 라인별 파일 분할 방법
If you need to split file by lines—for example, to break a massive log file into bite‑size chunks, feed batches of data into a pipeline, or turn a long report into separate chapter files—this tutorial shows you exactly how to do it with GroupDocs.Merger for Java. You’ll see why the library is a time‑saver, get a ready‑to‑run implementation, and learn practical tips that keep your application fast and reliable.
빠른 답변
- “split file by lines”는 무엇을 의미합니까? 원본 문서의 지정된 라인 번호 범위를 각각 포함하는 별도의 텍스트 파일을 생성합니다.
- 어떤 라이브러리가 분할을 처리합니까? GroupDocs.Merger for Java는 라인 구간 분할을 위한 간단한 API를 제공합니다.
- 라이선스가 필요합니까? 무료 체험판으로 테스트가 가능하며, 프로덕션 사용을 위해서는 영구 라이선스가 필요합니다.
- 문자 수 기준으로 분할할 수 있습니까? 직접적으로는 지원되지 않으며, 분할하기 전에 파일을 재구성하는 사전 처리 단계를 사용하십시오.
- 지원되는 Java 버전은 무엇입니까? Java 8 이상 런타임이면 모두 호환됩니다.
“split file by lines”란 무엇입니까?
Split file by lines는 단일 텍스트 문서를 여러 파일로 나누는 것으로, 각 파일은 연속된 라인의 특정 범위를 포함합니다(예: 1‑3줄, 4‑6줄 등). 이 방법은 데이터를 병렬로 처리하거나 메모리 부담을 줄이거나, 긴 파일을 보다 쉽게 탐색하고자 할 때 이상적입니다.
왜 GroupDocs.Merger for Java를 사용해야 할까요?
GroupDocs.Merger는 저수준 파일 I/O를 추상화하여 비즈니스 로직에 집중할 수 있게 해줍니다. 전체 문서를 메모리에 로드하지 않고도 최대 2 GB 파일을 효율적으로 처리하며, **70+**개의 입력 및 출력 형식을 지원하고, Maven 또는 Gradle 빌드와 깔끔하게 통합되는 유창한 API를 제공합니다. 이 라이브러리를 사용하면 직접 구현한 I/O 루프에 비해 개발 시간을 최대 **80 %**까지 단축할 수 있습니다.
전제 조건
- Java Development Kit (JDK) 8 이상 –
java와javac가 PATH에 포함되어 있는지 확인하십시오. - GroupDocs.Merger for Java – Maven, Gradle 또는 직접 다운로드를 통해 라이브러리를 추가하십시오.
- 기본 Java 지식 – 클래스, 메서드 및 예외 처리에 익숙해야 합니다.
GroupDocs.Merger for Java 설정
아래 방법 중 하나를 사용하여 프로젝트에 라이브러리를 추가하십시오.
Maven – 이 의존성을 pom.xml에 붙여넣으세요:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-merger</artifactId>
<version>latest-version</version>
</dependency>
Gradle – build.gradle에 다음 라인을 포함하십시오:
implementation 'com.groupdocs:groupdocs-merger:latest-version'
Direct Download – 공식 릴리스 페이지에서 JAR 파일을 다운로드할 수도 있습니다: GroupDocs.Merger for Java 릴리스.
라이선스 획득
API를 탐색하려면 무료 체험으로 시작하십시오. 프로덕션 작업을 위해서는 GroupDocs 포털에서 임시 또는 정식 라이선스를 얻으십시오.
라인별 텍스트 파일 분할 방법 (Java 구현)
아래는 간결한 단계별 안내입니다. 각 단계는 실제 코드가 위치하는 자리 표시자 전에 쉬운 언어로 설명되어 있어 정확히 무슨 일이 일어나는지 알 수 있습니다.
Step 1: 소스 및 출력 경로 정의
먼저, 원본 파일이 위치한 경로와 분할된 조각이 기록될 위치를 라이브러리에 알려줍니다.
String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.txt";
String filePathOut = "YOUR_OUTPUT_DIRECTORY/SplitToLineRanges-" + Paths.get(filePath).getFileName().toString();
Step 2: 분할 옵션 구성
TextSplitOptions 인스턴스를 생성하여 원하는 라인 구간을 지정합니다. new int[] { 3, 6 } 배열은 API에 라인 3과 라인 6 뒤에서 잘라 두 부분(1‑3 라인 및 4‑6 라인)을 생성하도록 지시합니다.
Definition: TextSplitOptions는 라인 구간 배열과 선택적 출력 명명 규칙을 보유하는 구성 객체입니다.
TextSplitOptions splitOptions = new TextSplitOptions(filePathOut, TextSplitMode.Interval, new int[] { 3, 6 });
Step 3: Merger 초기화 및 분할 실행
마지막으로, 소스 파일로 Merger를 인스턴스화하고 방금 만든 옵션으로 split()을 호출합니다.
Definition: Merger는 분할, 병합 및 페이지 추출과 같은 문서 조작 작업을 조정하는 GroupDocs.Merger의 핵심 클래스입니다.
Merger merger = new Merger(filePath);
merger.split(splitOptions);
split() 호출이 완료되면 YOUR_OUTPUT_DIRECTORY에 지정된 라인 범위를 포함하는 두 개의 새 파일이 생성됩니다.
실용적인 적용 사례 (왜 중요한가)
- Data Processing Pipelines – 대용량 로그 파일을 작은 조각으로 나누어 병렬 파싱을 수행함으로써 전체 처리 시간을 크게 단축합니다.
- Document Management – 단일 보고서를 챕터 수준 파일로 변환하여 다양한 팀에 배포하기 쉽게 합니다.
- Content Segmentation – 대형 기사 섹션을 타깃 퍼블리싱 플랫폼에 맞게 준비하여 SEO와 가독성을 향상시킵니다.
성능 팁
- Stream‑line I/O – 매우 큰 파일을 다룰 때 메모리 사용량을 낮추기 위해
Files.newBufferedReader를 사용하는 것이 좋습니다. - Close Resources – GroupDocs.Merger가 대부분의 정리를 처리하지만, 사용자 정의 스트림을 명시적으로 닫아야 누수를 방지할 수 있습니다.
- Monitor Memory – 기가바이트 규모 파일을 분할하면 메모리를 많이 사용하므로 필요에 따라 충분한 힙(
-Xmx2g이상)을 할당하십시오. - Batch Processing – 다수의 파일을 분할할 때 단일
Merger인스턴스를 재사용하여 객체 생성 오버헤드를 줄이십시오.
일반적인 문제 및 해결책
| 문제 | 발생 원인 | 해결 방법 |
|---|---|---|
OutOfMemoryError | 대용량 소스 파일이 힙을 초과합니다. | JVM 힙을 늘리거나 더 작은 구간으로 분할하십시오. |
FileNotFoundException | 경로가 잘못되었거나 권한이 없습니다. | filePath와 filePathOut이 절대 경로이며 쓰기 가능한지 확인하십시오. |
| 빈 출력 파일 | 구간 배열이 전체 문서를 포함하지 않습니다. | 마지막 구간이 전체 라인 수 이상으로 끝나도록 하십시오. |
자주 묻는 질문
Q: 파일을 라인 번호 대신 문자 수 기준으로 분할할 수 있습니까?
A: 현재 GroupDocs.Merger for Java는 라인 구간에 초점을 맞추고 있습니다. 그러나 이 기능을 사용하기 전에 원하는 문자 수에 맞게 텍스트를 사전 처리하여 라인당 문자 수를 맞출 수 있습니다.
Q: 분할을 위해 지정할 수 있는 구간 수에 제한이 있습니까?
A: 라이브러리에는 명확한 제한이 없지만, 수천 개의 작은 구간을 요청하면 각 분할마다 I/O 오버헤드가 발생해 성능이 저하될 수 있습니다.
Q: 파일 분할 중 오류를 어떻게 처리합니까?
A: split 로직을 try‑catch 블록으로 감싸고 MergerException 세부 정보를 로그에 기록하십시오. API는 실패 지점을 정확히 알려주는 명확한 메시지를 제공합니다.
Q: 라이브러리가 CSV 또는 TSV와 같은 다른 텍스트 기반 형식을 지원합니까?
A: 예, CSV와 TSV는 일반 텍스트 파일이므로 동일한 라인 구간 로직을 적용할 수 있습니다. API를 호출할 때는 .txt 파일로 취급하십시오.
Q: 폴더 내 여러 파일에 대한 분할을 자동화할 수 있습니까?
A: 물론 가능합니다. Files.list(Paths.get("folder"))를 순회하면서 각 파일에 동일한 TextSplitOptions를 적용하고 생성된 파트를 수집하십시오.
추가 리소스
- GroupDocs.Merger for Java 릴리스
- GroupDocs.Merger for Java 문서
- GroupDocs API 레퍼런스
- 최신 릴리스
- GroupDocs 구매
- GroupDocs 무료 체험
- 임시 라이선스 받기
- GroupDocs 지원
마지막 업데이트: 2026-07-25
테스트 환경: GroupDocs.Merger 23.12 for Java
작성자: GroupDocs