«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Сжатие и декакомпрессирующие файлы в Java

Сжатие и декакомпрессирующие файлы в Java

Опубликовано в 2025-03-24
Просматривать:612

Compressing and Decompressing files in Java

В этой статье исследуется сжатие и декомпрессию файла в Java, сосредотачиваясь на DeflaterOutputStream и классы FulaterInptReam для сжатия дефтата. Эти классы предлагают эффективные способы обработки сжатых данных.

]

Core Concepts:

java обеспечивает встроенную поддержку для сжатия и декомпрессирующих файлов с использованием пакета

java.util.zip . DeflateroutputStream сжимает данные в формат дефлятного (часто используемого в Zip Archives), в то время как fulaterInputStream декомпрессирует данные в одном и том же формате. ]

Пример: сжатие файла в Zip ]

Этот пример демонстрирует, как сжать файл в архив Zip:

]

try {
    File file = new File(filePath);
    String zipFileName = file.getName()   ".zip";
    FileOutputStream fos = new FileOutputStream(zipFileName);
    ZipOutputStream zos = new ZipOutputStream(fos);
    zos.putNextEntry(new ZipEntry(file.getName()));
    byte[] bytes = Files.readAllBytes(Paths.get(filePath));
    zos.write(bytes, 0, bytes.length);
    zos.closeEntry();
    zos.close();
} catch (FileNotFoundException ex) {
    System.err.format("File not found: %s%n", filePath);
} catch (IOException ex) {
    System.err.println("I/O error: "   ex);
}

алгоритм для сжатия файла/декомпрессия: ]

общий алгоритм сжатия и декомпрессии файлов в Java включает эти шаги:

]

]
  1. инициализация: импортировать необходимые классы, определить пути файлов. ]
  2. create fileOutputStream и delfaterOutputStream для записи сжатых данных. Читать данные из исходного файла с использованием fileInputStream , написать в DeflaterOutputStream и Close Streams. ]
  3. decompression:
  4. create fileInputStream и fulaterInputStream для чтения и распаковки данных. Напишите декаменные данные в файл назначения с помощью fileOutputStream , и закрыть потоки. ]
  5. обработка ошибок:
  6. реализовать надежную обработку ошибок (например, try-catch blocks) для управления потенциалом ioexceptions . ] ]
упрощенные примеры синтаксиса:

] в завершении, надежные примеры требуют большего количества обработки ошибок и управления путем файла, упрощенные фрагменты синтаксиса иллюстрируют основные операции:

]

Compression:

fileInputStream inputStream = new FileInputStream (inputPath); FileOutputStream outputStream = new FileOutputStream (outputPath); DeflaterOutputStream компрессор = новый DefflaterOutputStream (outputStream); // ... записать данные из InputStream в компрессор ... compressor.close ();
FileInputStream inputStream = new FileInputStream(inputPath);
FileOutputStream outputStream = new FileOutputStream(outputPath);
DeflaterOutputStream compressor = new DeflaterOutputStream(outputStream);
// ... write data from inputStream to compressor ...
compressor.close();
decompression:

]

fileInputStream inputStream = new FileInputStream (inputPath); FileOutputStream outputStream = new FileOutputStream (outputPath); Decompressor = new Inflaterinptream (inputStream); // ... записать данные от декомпрессора в outputStream ... decompressor.close ();
FileInputStream inputStream = new FileInputStream(inputPath);
FileOutputStream outputStream = new FileOutputStream(outputPath);
DeflaterOutputStream compressor = new DeflaterOutputStream(outputStream);
// ... write data from inputStream to compressor ...
compressor.close();
подходы:

существуют два основных подхода: сжатие/декомпрессия отдельных файлов и обработка нескольких файлов или каталогов. Примеры, представленные ранее в исходном тексте, демонстрируют сжатие с одним файлом с использованием

Zipoutputstream

и более сложный пример для нескольких файлов. Обработка каталогов требует рекурсивной обработки для пересечения структуры каталога. Обратите внимание, что в исходных примерах кода не было правильной обработки пути файла и управления ошибками, что привело к filenotFoundException . Всегда убедитесь, что надежная обработка ошибок и укажите правильные пути файла в вашем коде. ]

Заключение:

Java предлагает мощные инструменты для сжатия файлов и декомпрессии. Понимание

DeflaterOutputStream

и fulaterInputStream вместе с надлежащей обработкой ошибок и управлением путем файла имеет решающее значение для создания надежных и эффективных утилит сжатия. Не забудьте всегда обрабатывать потенциальные исключения и предоставлять соответствующие сообщения об ошибках пользователю. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3