Compactar em Java sem usar "ZIP"

2 respostas
R

Pessoal estou com os seguintes problemas:

preciso desenvolver 1 compactador quase que do zero, só que nao posso usar os calsses zips do java posi não quero zipar quéro criar 1 arquivo independente, preciso aplicar algumas lógicas desenvolvidas na faculdade, que nao vem ao caso agora

  1. gostaria de saber como ler os bytecodes dos arquivos e apresentalos em algum lugar para que ai sim eu aplique a logica de compactação desenvolvida.

o maximo q consegui fazer foi transformar um arquivo mp3 em txt dai ele apresentou os bytes criptografados, entao eu copiei linha por linha dentro de um array de String.

depois eu analiseis char por char aplicando a logica de compactação e reescrevi. os próprios ja compactados em outro aquivo. que ficou com cerca de 10% o seu tamanho mas quando eu descompactei e ele voltou normal ficou maior do que era e a musica ficou muito rapida, mas abriu.

por que?
Quando transformo qualquer arquivo de qualquer tipo em txt, leio linha por linha e salvo char por char e outro arquivo ele funciona, mas quando eu altero a ordem e volto ao normal não?

Quem quiser se enterar ao projeto me avise preciso de muita ajuda ainda .

aé o projeto é o seguinte

serve para trasferencia de arquivos pela internet. só que ele compila o arquivo as vezes de 1 gb para 10 mb dependendo o tipo do arquivo dai trasferimos o arquivo bem menos e o clienter o descompacta.

grato pela atenção.

2 Respostas

R

alguma ideia?

E

Cara, se você quer trabalhar com arquivos binários (como por exemplo o .mp3) não tem que trabalhar como um arquivo texto.

O comum nesses casos é trabalhar com as classes DataInputStream e FileInputStream

o DataInputStream tem um método readByte() que retorna byte a byte.

Ob.: Em java um char tem dois bytes porque é do tipo unicode. Será que não é esse seu problema?

Criado 16 de janeiro de 2008
Ultima resposta 17 de jan. de 2008
Respostas 2
Participantes 2