Робота із ZIP-архівами. Клас Console

Прокрутити вниз


У Java є вбудовані засоби для роботи із ZIP-архівами, а також клас Console, який використовується для роботи з командним рядком. Розглянемо ці два аспекти. Робота із ZIP-архівами в java – онлайн курс для дітей

1. Робота із ZIP-архівами

Для роботи з ZIP-архівами в Java використовується клас ZipInputStream для читання та ZipOutputStream для запису архівів. Обидва ці класи знаходяться в пакеті java.util.zip.

Основні класи:

  • ZipInputStream — використовується для читання вмісту ZIP-архіву.
  • ZipOutputStream — використовується для створення та запису ZIP-архіву.
  • ZipEntry — представляє окремий файл або директорію в ZIP-архіві.

Створення ZIP-архіву:

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Main {
public static void main(String[] args) {
try (FileOutputStream fos = new FileOutputStream(“archive.zip”);
ZipOutputStream zos = new ZipOutputStream(fos)) {

// Створюємо нову ZipEntry для файлу
ZipEntry entry = new ZipEntry(“file.txt”);
zos.putNextEntry(entry);

// Записуємо дані у файл всередині архіву
String data = “Hello, ZIP!”;
zos.write(data.getBytes());

// Закриваємо потік запису для поточного файлу
zos.closeEntry();

} catch (IOException e) {
e.printStackTrace();
}
}
}

Розпаковка ZIP-архіву:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class Main {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream(“archive.zip”);
ZipInputStream zis = new ZipInputStream(fis)) {

ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
System.out.println(“Розпаковую: ” + entry.getName());

// Вивантажуємо вміст файлу з архіву
try (FileOutputStream fos = new FileOutputStream(entry.getName())) {
byte[] buffer = new byte[1024];
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
}
zis.closeEntry();
}

} catch (IOException e) {
e.printStackTrace();
}
}
}

Основні моменти:

  • ZipEntry представляє кожен файл або директорію в ZIP-архіві. Для кожного файлу потрібно створювати окремий ZipEntry.
  • putNextEntry() — метод, який додає нову сутність в архів для запису.
  • getNextEntry() — використовується для отримання наступної сутності з архіву під час розпаковки.
  • closeEntry() — закриває поточну записану/прочитану сутність.

2. Клас Console

Клас Console в Java використовується для введення та виведення інформації в консоль під час роботи програми з командним рядком. Він знаходиться в пакеті `java.io`. Цей клас зручний для запиту користувацького введення та виведення текстової інформації.

Основні методи класу Console:

  • readLine() — зчитує введений рядок із консолі.
  • readPassword() — зчитує пароль або інші конфіденційні дані без їхнього відображення.
  • format() — виводить відформатовану інформацію на консоль.
  • flush() — очищає буфер виведення консолі.

Приклад використання Console:

import java.io.Console;

public class Main {
public static void main(String[] args) {
Console console = System.console();

if (console != null) {
// Читання введеного рядка
String name = console.readLine(“Введіть своє ім’я: “);
console.format(“Привіт, %s!%n”, name);

// Читання пароля (символи не відображаються під час введення)
char[] password = console.readPassword(“Введіть пароль: “);
console.format(“Ваш пароль має %d символів.%n”, password.length);
} else {
System.out.println(“Консоль недоступна.”);
}
}
}

Основні моменти:

  • Console зазвичай використовується в додатках, які запускаються з командного рядка. Якщо ви запускаєте програму в середовищі, яке не підтримує консоль (наприклад, в IDE), метод System.console() поверне null.
  • readPassword() використовується для безпечного введення паролів, оскільки дані не відображаються під час введення.

Важливі особливості:

  • Консоль є зручною для взаємодії з користувачем, однак її використання залежить від середовища, в якому запущена програма (в IDE вона може бути недоступною).
  • ZIP-архіви дозволяють ефективно зберігати та передавати кілька файлів у стиснутій формі.

Робота із ZIP-архівамиКлас Console