/
Letta21
/
WorkWithFiles
Обзор
Документация
Войти
/
Letta21
/
WorkWithFiles
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
MainOpenZip.java
66 строк
3 KB
Letta21
upload files
15 дек 2025, 09:24
15 дек 2025, 09:24
85a3936
Код
Авторство
О чём код?
import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class MainOpenZip { public static void main(String[] args) { String saveGamesPath = "C:\\Users\\Letta\\Desktop\\Games\\savegames\\"; String zipFilePath = saveGamesPath + "/zip.zip"; // Распаковка архива openZip(zipFilePath, saveGamesPath); // Десериализация (чтение) одного из файлов // Читаем, например, сохранение №2 (save2.dat) GameProgress gameProgress = openProgress(saveGamesPath + "/save2.dat"); System.out.println(gameProgress); } // Метод распаковки архива public static void openZip(String zipFilePath, String destDir) { try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFilePath))) { ZipEntry entry; String name; // Считываем каждый элемент архива while ((entry = zis.getNextEntry()) != null) { name = entry.getName(); // Получаем имя файла (например, save1.dat) // Формируем путь для распаковки String outputPath = destDir + File.separator + name; // Записываем распакованный файл FileOutputStream fos = new FileOutputStream(outputPath); for (int c = zis.read(); c != -1; c = zis.read()) { fos.write(c); } fos.flush(); zis.closeEntry(); fos.close(); } System.out.println("Распаковка архива завершена."); } catch (Exception ex) { System.out.println(ex.getMessage()); } } // Метод десериализации (загрузки игры) public static GameProgress openProgress(String filePath) { GameProgress gameProgress = null; try (FileInputStream fis = new FileInputStream(filePath); ObjectInputStream ois = new ObjectInputStream(fis)) { // Считываем объект и приводим его к классу GameProgress gameProgress = (GameProgress) ois.readObject(); } catch (Exception ex) { System.out.println(ex.getMessage()); } return gameProgress; } }