http://www.waper.ru/folder/431284/1908429
v1.1.3
1 Коррекции 0x08 , zip структуры компрессии/декомпрессии. .
2 Новый BytesDeflater класс для массива байт компресс:
Использование: byte[] bdes= BytesDeflater.deflateBytes(b); //Массив сжатия
--------------
v1.1.2
Проведенные обширные изменения zipMe в библиотеках классов:
1 Изменено польский putFooEntry библиотеки увеличение функции;
2 Новый интерфейс getNextFooData;
3 Увеличилась поддержка китайского пути;
4 0x08 идеальная zip структура компрессии/декомпрессии.
--------------
- /* Пример использования */
- import javax.microedition.midlet.MIDlet;
- import cn.agrj.rsRk.zip.ZipEntry;
- import cn.agrj.rsRk.zip.ZipInputStream;
- import cn.agrj.rsRk.zip.ZipOutputStream;
- public class testZip extends MIDlet {
- public testZip() {
- long l = System.currentTimeMillis(); //Запись текущей метки времени
- String sf = "file:///root1/0x08-zip.jar";
- try {
- // Создание zip входного потока, в новой версии в использовании, просто.
- ZipInputStream zis=new ZipInputStream(sf); //Создать zip поток входного
- // Установить размер входного буфера
- zis.setBufsize(40960);//Лучше всего кратной 10240, не пишите по умолчанию 10240.
- // Создать zip поток выходной, в новой версии в использовании, просто
- ZipOutputStream zos=new ZipOutputStream(sf.substring(0,sf.length ()-4)+"-new.jar"); //Создать zip поток выходных
- // Установить размер выходного буфера
- zos.setBufsize(40960);//Лучше всего кратной 10240, не пишите по умолчанию 10240.
- // Установка параметры сжатия, по умолчанию уровень сжатия 9
- zos.setLevel(9); //5-9, 0; 4-1, java.lang.ArrayIndexOutOfBoundsException //Установить степень сжатия 9
- zos.setMethod(8);//Установить режим сжатия: сжатие, 0 хранится, по умолчанию
- // Обработка раздела
- ZipEntry ze = null; //Инициализация Entry
- byte[] b = null;
- while( (ze = zis.getNextEntry()) ! =null ){ //Далее следуют чтения из входного потока ZIP Entry
- System.out.println(ze.name+ze.compres sedSize); // Отображаемое имя входа и размер сжатия файлов
- b = zis.getNextData(); // Получите Entry вход распакованных данных, эти данные записываются в файл для достижения декомпрессии
- // zis.closeEntry(); // Закрыть поток входа // одна команда выше будет автоматически вызывать это заявление
- if(!ze.name.toLowerCase().endsWith(".class")){ //Не нужно внести изменения в файл напрямую писать без сжатия
- zos.putFooEntry(ze,zis); //Прямая запись бесплатный сжатия, rsRk добавленный интерфейс
- /*//Здесь могут быть использованы для сжатых данных на доступ к исходному файлу
- //b=zis.getNextFooData(); //Оригинальное запись файла в сжатых данных, а иногда и полезно, rsRk вновь добавленный интерфейс */
- } else {
- zos.putNextEntry(ze.name);//Создание выходных Entry
- zos.write(b,0,b.length); //Написать данных, которые должны быть сжаты, предложение также может быть сокращенно zos.write(b);
- //zos.closeEntry();//Закрыть текущий выход вход / / одна команда выше будет автоматически вызывать это заявление
- }
- }
- zis.close(); //Закрываем поток zip вход
- zos.close();//Закрываем поток zip выход
- System.gc(); //отделочные памяти
- } catch(Exception e) {
- e.printStackTrace(); //захватить ошибку запроса }
- System.out.println("Общее время"+(System.currentTimeMillis()-l)+"миллисекунд!\n"); //рассчитываем времени
- }
- }
- protected void destroyApp(boolean arg0) {}
- protected void pauseApp() {}
- protected void startApp() {}
- }