2012-07-06 3 views
1

DeflateStream을 사용하여 Visual Basic에서 압축 된 문자열의 압축을 풀는 중 문제가 있습니다. 나는 약간의 연구를 수행하여 Inflater와 InflaterOutputStream을 사용하여 Java에서 압축 해제하는 많은 코드를 시도했습니다. 발견 된 코드는 없습니다. 나는 많은 사이트를 조사해 보았고, 구글에서 많은 방법으로 검색했다. 나는 자바, 인플레이터/deflater 압축, 시각적 기본, deflaterStream에 관심이 구글에서 처음 3 페이지는 이미 성공없이 읽을 수 있다고 말할 수 있습니다. 이게 가능한지 알고 싶습니다. (그리고 Java와 C# 사이의 압축/압축 해제 방법을 찾은 이후로해야합니다 : http://www.dreamincode.net/forums/topic/243808-compression-and-decompression-between-java-and-c%23/) Visual Basic DeflateStream 및 Java와 관련된 호환성 문제가 있는지 알고 싶습니다. 아날로그 클래스 Inflater/Deflater. 비슷한 문제가있는 사람이라면 코드 스 니펫도 매우 좋을 것입니다.Visual Basic으로 압축 된 문자열을 Java에서 압축 해제

감사합니다, 미하이 내가 읽은 바로는

답변

0

좋아, 그래서 결국이 문제를 해결할 수있었습니다. 그것은 초급 오류였습니다. 그러나 그것을 해결할만큼 오래 걸렸습니다. 이 문제는 압축 및 암호화 된 초기 파일을 읽을 때 파일의 내용을 바이트 배열로 직접 읽는 대신 문자열로 유지한다는 사실에 의해 나타났습니다. 그리고 물론, 일부 바이트는 문자열 인코딩에 의해 지원되지 않고 손실 되었기 때문에 압축 형식이 인식되지 않았습니다. Java의 Inflater/Deflater 클래스는 vb.net의 DeflateStream 클래스와 호환됩니다!

도움과 협조에 진심으로 감사드립니다.

0

는 자바의 폐의/부풀려은 Zlib의를 사용합니다. VB에서 무엇을 부풀리기 위해 사용합니까? Google에이 글을 게시하지 못했지만 일부 참조는 ZIP, zlib을 사용하지 않음을 나타냅니다.

압축 된 형식을 확인하기 위해 file compressed_file을 실행 해 보셨습니까?

어느 경우이든, ZIP 알고리즘을 사용하여 압축 해제를 위해 아파치 공유를 시도 할 수 있습니다.

+0

안녕하십니까. 답변 해 주셔서 감사합니다. 압축을 풀려고하는 파일도 암호화되어 있음을 언급해야합니다. 그래서 암호를 해독하고 그 후에 나는 현재 단계에 도달했습니다. 메모리에 저장된 암호 해독 결과를 압축하려고하므로 적절한 파일이 없습니다. 압축을 풀기 위해 아파치 공유지를 사용하려고했지만 성공하지 못했습니다. – mihai

+0

내용을 올바르게 압축 해제하는 방법을 찾을 때까지 내용을 디스크에 저장해야합니다. – WhyNotHugo

+0

나는이 내용도 시도해 내용을 파일에 저장하고 그 파일의 압축을 풀었지만 성공하지는 못했다. 해당 파일에서 파일 명령을 실행했지만 그 결과는 "데이터"였습니다. 이는 결정적이지 않았습니다. – mihai

1

Inflater 클래스에서 nowrap 매개 변수를 설정해보십시오.

documentation에 따르면 .NET DeflateStream은 원시 수축 형식 인 RFC 1951을 생성합니다. Visual Basic에서 사용하는 것으로 가정합니다.

documentation 또한 Java의 Inflater 클래스는 zlib 형식 인 RFC 1950을 디코딩합니다. zlib 형식은 zlib 헤더 및 예고편으로 래핑 된 원시 수축 형식입니다. 일반적으로 Inflater 클래스는 .NET DeflateStream의 원시 압축 데이터에서 실패합니다. 다행히 Inflater 클래스는 생성자에 nowrap parameter을 제공합니다 (true로 설정 됨). Inflater는 zlib 래퍼없이 원시 수축 데이터를 디코딩 할 수 있습니다.

이렇게하면됩니다. DeflateStream에 의해 생성 된 데이터의 16 진수 중 처음 20 바이트는 무엇입니까?

+0

제안 해 주셔서 감사합니다.하지만 이미 완료했으며 작동하지 않았습니다. – mihai

+0

제안을 다시 한 번 감사드립니다. 문제를 해결하기 위해 나는 압축 해제 (gzip, bzip2, inflater, apache commons에서 zip 등)하는 몇 가지 방법을 모아서 작동하는 압축 해제 변형에 nowrap 매개 변수 세트가 있음을 확인했습니다. 다시 한 번 감사드립니다. – mihai

관련 문제