/
xtasy
/
files.task3
Обзор
Документация
Войти
/
xtasy
/
files.task3
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/Utils.java
45 строк
3 KB
xtasy
initial commit
21 май 2026, 01:39
21 май 2026, 01:39
883dd7e
Код
Авторство
О чём код?
import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class Utils { /* Реализуйте метод openZip(), который принимал бы два аргумента: путь к файлу типа String (например, "/Users/admin/Games/GunRunner/savegames/zip.zip") и путь к папке, куда стоит разархивировать файлы типа String (например, "/Users/admin/Games/GunRunner/savegames"). Для распаковки Вам потребуются такие стримовые классы как FileInputStream, ZipInputStream и класс объекта архива ZipEntry. Считывание элементов аврхива производится с помощью метода getNextEntry() класса ZipInputStream, а узнать название объекта ZipEntry можно с помощью метода getName(). Запись в файл распакованных объектов можно произвести с помощью FileOutputStream. Далее реализуйте метод openProgress(), который бы в качестве аргумента принимал путь к файлу с сохраненной игрой типа String (например, "/Users/admin/Games/GunRunner/savegames/save2.dat") и возвращал объект типа GameProgress. В данном методе Вам потребуются классы FileInputStream и ObjectInputStream. С помощью метода класса ObjectInputStream readObject() можно десериализовать объект, а далее привести (скастить) его к GameProgress. */ public static void openZip(String zipPath, String savePath) { try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipPath))) { ZipEntry entry; String name; while ((entry = zis.getNextEntry()) != null) { name = entry.getName(); try (FileOutputStream fos = new FileOutputStream(savePath + "/" + name)) { fos.write(zis.readAllBytes()); } catch (IOException e) { System.out.println("Error writing to file:" + e.getMessage()); } } } catch (IOException e) { System.out.println("Error opening zip file: " + zipPath); } } public static GameProgress openProgress(String savePath) { try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(savePath))) { return (GameProgress) ois.readObject(); } catch (IOException | ClassNotFoundException e) { System.out.println("Error opening file: " + savePath); return null; } } }