tar.gz 파일 내의 모든 파일 내용을 인쇄 할 수있는 응용 프로그램을 구현해야합니다. 예를 들어Java로 tar.gz 파일의 내용을 인쇄하는 방법은 무엇입니까?
:
나는 testx라는 폴더에이 같은 세 개의 파일이있는 경우 :
a.txt이 단어
가 B.txt 단어 "유비 maior을 포함 "하나님은 여왕을 저장 "을 포함, 작은 cessat "
C.txt.gz는"Hello America !! "라는 단어가있는 c.txt 파일을 포함하는 gzip으로 압축 된 파일입니다.
그래서 testx를 압축하면 압축 된 tar 파일 인 testx.tar.gz가 생성됩니다. 내 자바 응용 프로그램 그래서
나는 콘솔에 인쇄하고 싶은 :이
"유비 maior, 작은 cessat"
"하나님 여왕 저장" "안녕하세요 미국을!"
나는 ZIP 버전을 구현했으며 잘 작동하지만 아파치 개미 http://commons.apache.org/compress/에서 tar 라이브러리를 유지하면 ZIP 자바 유틸리티처럼 쉽지 않은 것으로 나타났습니다.
누군가 나를 도울 수 있습니까?
내 목표를 달성하는 방법을 이해하기 위해 인터넷에서 찾고 시작했다, 그래서 나는 다음과 같은 코드가 있습니다 라인 is.copyEntryContents(out)
에 따라서
GZIPInputStream gzipInputStream=null;
gzipInputStream = new GZIPInputStream(new FileInputStream(fileName));
TarInputStream is = new TarInputStream(gzipInputStream);
TarEntry entryx = null;
while((entryx = is.getNextEntry()) != null) {
if (entryx.isDirectory()) continue;
else {
System.out.println(entryx.getName());
if (entryx.getName().endsWith("txt.gz")){
is.copyEntryContents(out);
// out is a OutputStream!!
}
}
}
를,이 파일 스트림 통과에 저장할 수있다 OutputStream,하지만 그것을 원하지 않아! 첫 번째 항목 인 ZipEntry를 유지 한 후 zip 버전에서 압축 된 루트 폴더 testx.tar.gz에서 스트림을 추출한 다음 새 ZipInputStream을 만들고 콘텐츠를 얻기 위해 함께 재생할 수 있습니다.
tar.gz 파일로이 작업을 수행 할 수 있습니까?
감사합니다.
관련 항목 : [Java에서 tar.gz 파일 압축/압축 해제 방법] (http://stackoverflow.com/questions/7128171/how-to-compress-dar-gz-files-in-java) –