반응형
java로 hwp는 hwplib를 통해서 읽는데, hwpx를 읽으려고 하니 오류가 난다.
단순히 안에 있는 텍스트 내용만 가져오면 되는데 안 되는 게 답답하던 차ㅡ
구글에서 찾아보니
[아주 쉬운 뉴스 Q&A] 아래아한글 새 기본문서 'hwpx'가 뭐죠? | 아주경제
위 링크를 참고하면
hwpx는 zip format으로 확장자를 변경하면 폴더 내 계층구조로 내용이 적혀있다는 것이다.
zip으로 변경한 뒤, 해당 폴더 구조는 아래와 같고,
저 Preview 폴더 안에는
아래와 같이 해당 문서의 이미지와 text가 적혀있다.
내가 원하는 값은 text였기에 해당 부분을 가져오는 코드를 짰다.
public String readInput(String filePath) {
StringBuilder stringBuilder = new StringBuilder();
try {
ZipFile zipFile = new ZipFile(filePath);
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while(entries.hasMoreElements()){
ZipEntry entry = entries.nextElement();
if(entry.getName().contains("PrvText.txt")){
InputStream stream = zipFile.getInputStream(entry);
InputStreamReader inputStreamReader = new InputStreamReader(stream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = "";
while((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line+"\\n");
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
ZipFile 객체를 통해서 파일을 읽고
ZipEntry를 순회하면서 파일이름(entry.getName)에
PrvText.txt 가 포함되어 있으면 해당 파일을 읽어서 String으로 반환하게끔 구현했다.
반응형
'text > Java' 카테고리의 다른 글
매번 찾기 귀찮은 LocalDate 적어놓기 (0) | 2023.02.24 |
---|---|
antMatcher? 가 머지 (0) | 2023.02.21 |
SpringBoot에서 JSP사용 시 설정 (0) | 2022.11.10 |
java HashMap source code 살펴보기 (1) | 2022.10.11 |
java ArrayList source code 살펴보기 (1) | 2022.09.20 |
댓글